【发布时间】:2021-06-25 15:57:44
【问题描述】:
我有一个数据框,其中有一个变量“Gender”(0 或 1)表示一个人是男性还是女性,另一个变量“Dis”表示疾病状态(0、1、2 或 3)。
> df.head()
Gender Dis
0 1 2
1 0 0
2 0 1
3 1 3
4 0 0
5 0 1
我想制作一个带有每个“Dis”值的计数值的条形图,但我希望它按性别分开,即,我希望每种疾病状态有两个条形图。我想要这个:
但是,如果不手动编写每个条形图的计数值,我就无法自动执行此条形图。我必须检查每个组合的计数值。我使用以下内容手动制作了这个图:
X = ['0','1','2','3']
M = [43,9,20,11]
F = [118,21,168,20]
X_axis = np.arange(len(X))
plt.bar(X_axis - 0.2, M, 0.4, label = 'Male')
plt.bar(X_axis + 0.2, F, 0.4, label = 'Female')
plt.xticks(X_axis, X)
plt.xlabel("")
plt.ylabel("")
plt.legend()
plt.title("title")
def autolabel(rects):
for rect in rects:
h = rect.get_height()
ax.text(rect.get_x()+rect.get_width()/2., 1.05*h, '%d'%int(h),
ha='center', va='bottom')
plt.show()
我可以直接从数据框中做一些更“自动”的事情吗?另外,我也可以在每个条的顶部显示计数值吗?
【问题讨论】:
标签: python matplotlib bar-chart