Seaborn:在直方图上用误差条覆盖方框图或平均值

2024-06-13 17:00:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Seaborn用非常标准的方式创建了一个柱状图,即:

rc = {'font.size': 32, 'axes.labelsize': 28.5, 'legend.fontsize': 32.0, 
    'axes.titlesize': 32, 'xtick.labelsize': 31, 'ytick.labelsize': 12}
sns.set(style="ticks", color_codes=True, rc = rc)
plt.figure(figsize=(25,20),dpi=300)

ax = sns.distplot(synData['SYNERGY_SCORE'])
print (np.mean(synData['SYNERGY_SCORE']), np.std(synData['SYNERGY_SCORE']))
# ax = sns.boxplot(synData['SYNERGY_SCORE'], orient = 'h') 

ax.set(xlabel = 'Synergy Score', ylabel = 'Frequency', title = 'Aggregate Synergy Score Distribution')

这将产生以下输出:standard histogram.

我还想在同一个图上可视化这个数据集的平均值+标准差,理想的方法是在x轴上(或在x轴的正上方)有一个表示平均值的点和显示标准差的缺口误差条。另一个选择是围绕x轴的框线图。我试着添加注释掉的行(sns.box图()),但它看起来超级丑,根本不是我要找的。有什么建议吗?


Tags: npseabornax平均值scorercsetsns
1条回答
网友
1楼 · 发布于 2024-06-13 17:00:22

箱线图绘制在分类轴上,不会与直方图的密度轴很好地共存,但可以使用双x轴绘图:

import numpy as np
import seaborn as sns

x = np.random.randn(300)
ax = sns.distplot(x)
ax2 = ax.twinx()
sns.boxplot(x=x, ax=ax2)
ax2.set(ylim=(-.5, 10))

enter image description here

相关问题 更多 >