我想使用下面提供的代码绘制条形图,但添加了阈值,其中阈值上或阈值以下的数据与阈值以上的数据点具有不同的颜色。
请查看此链接以了解条形图中阈值的含义:如何创建带有阈值线的matplotlib条形图?
我尝试在链接中使用建议的代码,但它不工作,特别是我需要使用酒吧注解。
您的帮助将不胜感激!
下面是我的代码:
def plot_data(data_type, title, plot_name):
plt.figure(figsize=(30,15))
threshold = 5
position = data_type["Position"]
count = data_type["Count"]
splot = sns.barplot(x=position, y=count, color="violet", data=data_type)
plt.axhline(y=threshold) #this shows a horizontal line starting from threshold
plt.title(title, size=50)
plt.xlabel("Positon", fontsize=30)
plt.ylabel("Count", fontsize=30)
plt.xticks(rotation=90)
for p in splot.patches:
splot.annotate(format(p.get_height(), '.0f'),
(p.get_x() + p.get_width() / 2, p.get_height()),
ha = 'center', va = 'center',
size=20, xytext = (0, 8),
textcoords = 'offset points')
plt.savefig(plot_name, format="png")
plt.show()
2条答案
按热度按时间vsdwdz231#
Seaborn不做堆叠条形图。但你可以只画两次条形图:一次是原始高度,一次是高度被裁剪到阈值。对于注解,matplotlib现在有一个新的
bar_label()
函数。请注意,
sns.barplot
返回一个ax
(子图),您可以使用它通过matplotlib的object-oriented interface进行更改。mgdq6dx12#
您可以使用此代码