gpt4 book ai didi

python - Seaborn:如何让标签在列中很好地居中?

转载 作者:行者123 更新时间:2023-12-01 00:13:22 24 4
gpt4 key购买 nike

这是我的情节代码:

from matplotlib import pyplot as plt
import pandas as pd
import seaborn as sns

data = pd.read_csv('titanic.csv')
ax = sns.countplot(x='Survived', hue='Pclass', data=data, palette="pastel")
ax.set_title("Survival in terms of Pclass", fontsize=20)
for p in ax.patches:
ax.annotate(f'\n{p.get_height()}', (p.get_x()+0.2, p.get_height()), ha='center', va='top', color='white', size=18)

这是我的情节: resulting plot

如何将图表列内的值很好地移动到每列的中间?现在,例如119号被稍微削减了。

最佳答案

您想要的是将文本相对于补丁居中。您已经有了 x 位置。补丁的宽度是p.get_width()。只需将其除以 2 并将其添加到 x 位置即可获得中心。

您可以添加 plt.tight_layout() 以使绘图及其标签很好地适应图像。 ax.set_xticklabels(['No', 'Yes']) 设置 x 轴的标签。

使用泰坦尼克号数据集:

from matplotlib import pyplot as plt
import seaborn as sns

data = sns.load_dataset('titanic')
ax = sns.countplot(x='survived', hue='pclass', data=data, palette="plasma")
ax.set_title("Survival in terms of Pclass", fontsize=20)
ax.set_xticklabels(['No', 'Yes'])
for p in ax.patches:
ax.annotate(f'\n{p.get_height()}',
(p.get_x() + p.get_width() / 2, p.get_height()), ha='center', va='top', color='white', size=14)
plt.tight_layout()
plt.show()

the result

关于python - Seaborn:如何让标签在列中很好地居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59481023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com