我有以下数据集、代码和绘图:import matplotlib.pyplot as pltimport 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)plt.show()如何获得某些描述(点、*、形状等)的标记以显示tom平均为 15(因此低于他的平均水平)并且 matt平均为 10 所以高于平均水平。因此,一个标记会根据L4AverageAttempts每个人的价值来计算。我已经调查过了axvline,但这似乎只是一个固定数字,而不是每个 y 轴类别的特定值。任何帮助将非常感激!谢谢!
1 回答
温温酱
TA贡献1752条经验 获得超4个赞
L4AverageAttempts您可以使用x 值在条形图的顶部简单地绘制散点图:
您可以为此使用seaborn.scatterplot。确保设置zorder参数,使标记出现在条形图的顶部。
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)
sns.scatterplot(x='L4AverageAttempts', y="Name", data=df3, zorder=10, color='k', edgecolor='k')
plt.show()
添加回答
举报
0/150
提交
取消