如何将来自不同列的标记添加到 seaborn pandas barplot

我有以下数据集、代码和绘图:


import matplotlib.pyplot as plt

import seaborn as sns

import pandas as pd

data = [['tom', 10,15], ['matt', 13,10]]


df3 = pd.DataFrame(data, columns = ['Name', 'Attempts','L4AverageAttempts']) 


f,ax = plt.subplots(nrows=1,figsize=(16,9))

sns.barplot(x='Attempts',y='Name',data=df3)

plt.show()

http://img1.mukewang.com/63a135d100011c3c09350532.jpg

如何获得某些描述(点、*、形状等)的标记以显示tom平均为 15(因此低于他的平均水平)并且 matt平均为 10 所以高于平均水平。因此,一个标记会根据L4AverageAttempts每个人的价值来计算。

我已经调查过了axvline,但这似乎只是一个固定数字,而不是每个 y 轴类别的特定值。任何帮助将非常感激!谢谢!


繁花不似锦
浏览 73回答 1
1回答

温温酱

L4AverageAttempts您可以使用x 值在条形图的顶部简单地绘制散点图:您可以为此使用seaborn.scatterplot。确保设置zorder参数,使标记出现在条形图的顶部。import seaborn as snsimport pandas as pddata = [['tom', 10,15], ['matt', 13,10]]df3 = pd.DataFrame(data, columns = ['Name', 'Attempts','L4AverageAttempts'])f,ax = plt.subplots(nrows=1,figsize=(16,9))sns.barplot(x='Attempts',y='Name',data=df3)sns.scatterplot(x='L4AverageAttempts', y="Name", data=df3, zorder=10, color='k', edgecolor='k')plt.show()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python