首页 > 解决方案 > 在每个 seaborn 子条形图上显示值

问题描述

我知道已经发布了类似的问题,但我无法修改我的代码:(

我有四个具有相同列名的数据集,我正在尝试添加 y_value,它是每个子图上的 average_referral_sent。有人可以帮忙吗?

fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2,2, sharex=True, sharey=True,figsize=(10,10))

sns.barplot(x="split_test_group", y="average_referral_sent", hue='split_test_group',
                 palette=["C0", "C1", "C2"],data=with_in_a_week,ax=ax1)

sns.barplot(x="split_test_group", y="average_referral_sent", hue='split_test_group',
                 palette=["C0", "C1", "C2"],data=between_7_and_14_days,ax=ax2)

sns.barplot(x="split_test_group", y="average_referral_sent", hue='split_test_group',
                 palette=["C0", "C1", "C2"],data=between_14_and_21_days,ax=ax3)

sns.barplot(x="split_test_group", y="average_referral_sent", hue='split_test_group',
                 palette=["C0", "C1", "C2"],data=after_a_month,ax=ax4)

ax1.set(xlabel='Experiment Groups', ylabel='Average Number of Referrals Sent')
ax2.set(xlabel='Experiment Groups', ylabel='Average Number of Referrals Sent')
ax3.set(xlabel='Experiment Groups', ylabel='Average Number of Referrals Sent')
ax4.set(xlabel='Experiment Groups', ylabel='Average Number of Referrals Sent')

plt.show()

下面是我的输出,我想将每个数据集中的 y="average_referral_sent" 显示到相关的子图中 在此处输入图像描述

标签: pythonseaborn

解决方案


获取 x 轴的位置,然后使用Axes.text. 这是第一个情节,尝试为其他情节复制

xlocs = ax1.get_xticks()
for i in range(len(xlocs)):
    y = with_in_a_week.iloc[i].average_referral_sent

    # you might need to adjust the 0.2 to get the right position
    ax1.text(xlocs[i], y + 0.2, str(y))

推荐阅读