pandas 如何使用python在Bar graph上添加总计数?

3gtaxfhh  于 2023-04-28  发布在  Python
关注(0)|答案(2)|浏览(141)

我想做一个条形图的性别列我的数据框架(有许多行),我想显示计数的零和一上的酒吧。我的数据框架看起来像这样。
| HR|DBP|响应|性别|
| --------------|--------------|--------------|--------------|
| 一百一十点九|六十四点零|十五点二|0|
| 97.0 |七十二点零|十九点零|1|
| 89.0 |六十二点五|22.0|0|
| 90.0 |一百零五点零|30.0|1|
| 一百零三点零|一百零四点零|二十四点五|1|
| 100.0|一百二十五点零|35.0|0|
| 一百一十三点零|一百零二点零|二十六点五|1|
另外,我想将0改为女性,1改为男性,如下图所示。我在这个网站上看了类似的问题,但我无法理解其中的逻辑。有人能帮我吗?

我用来制作这个图表的代码:

ax = df_1['Gender'].value_counts().plot(kind='bar', figsize=(7, 6), rot=0)
plt.xlabel("Gender")
plt.ylabel("Number of People")
plt.title("Bar Graph of Gender from Training Set A", y = 1.02)
ax.set_xticklabels(('Male', 'Female'))
wvt8vs2t

wvt8vs2t1#

试试这个:

gender = df1['Gender'].value_counts()
plt.figure(figsize=(7, 6))
ax = gender.plot(kind='bar', rot=0, color="b")
ax.set_title("Bar Graph of Gender in Training Set A", y = 1)
ax.set_xlabel('Gender')
ax.set_ylabel('Number of Patients')
ax.set_xticklabels(('Male', 'Female'))

for rect in ax.patches:
    y_value = rect.get_height()
    x_value = rect.get_x() + rect.get_width() / 2
    space = 1
    label = "{:.0f}".format(y_value)
    ax.annotate(label, (x_value, y_value), xytext=(0, space), textcoords="offset points", ha='center', va='bottom')
plt.show()

输出:

6qftjkof

6qftjkof2#

您也可以使用Seaborn的countplot功能:

import seaborn as sns
ax = sns.countplot(df_1, x = 'Gender')
#This next line will label the top of the bar with the item counts 
ax.bar_label(ax.containers[0])
ax.set_xticklabels(('Male', 'Female'))

相关问题