我有一个pandas数据框,看起来像 其中一列名为标签,只能使用两个可能的值0或1。
我想将标签1和标签0的直方图分别放在其他顶部,如
我可以为其中一个列(名为" MA_CL05")执行此操作,如:
temp = infile.groupby('label')
for k, v in temp:
if k == 1:
v.MA_CL05.hist(label='1',figsize=(15,15),bins=25,alpha=1.0,histtype = 'step',lw=4)
if k == 0:
v.MA_CL05.hist(label='0',figsize=(15,15),bins=25,alpha=1.0,histtype = 'step',lw=4)
plt.legend(loc=1, prop={'size': 51})
plt.show()
我可以复制并通过这个补丁的所有20列,它会没事的。但是,有没有简单的方法可以一次性绘制这种类型(2)的直方图?
答案 0 :(得分:1)
您可以添加另一个循环,循环数据框的列并指定要绘制的轴。
fig, axes = plt.subplots(4,5)
for col,ax in zip(infile.columns[2:],axes.flatten()):
temp = infile.groupby('label')
for k, v in temp:
v[col].hist(label=str(k),bins=25,alpha=1.0,histtype = 'step',lw=4, ax=ax)
plt.legend(loc=1, prop={'size': 51})
plt.show()