df.hist()的叠加图

时间:2019-06-11 12:06:54

标签: python pandas matplotlib

我正在尝试使用以下方法覆盖数据框中的图:

data[target==0].hist(color='b')
data[target==1].hist(color='r')
plt.show()

数据框各有15列,它产生30个图,而不是15个,各有2个图。

如何获得第二套15在第一套15上的绘图空间?

我可以使用循环并使用子图来完成此操作,但我希望有一个更简单的解决方案。

1 个答案:

答案 0 :(得分:1)

您需要将正确数量的轴对象传递给熊猫plot(),否则,将被迫创建一个新图形来适应您所请求的绘图。

如果您想自己指定轴的几何形状:

df1 = pd.DataFrame(np.random.normal(loc=0, size=(100,20)))
df2 = pd.DataFrame(np.random.normal(loc=1, size=(100,20)))

fig, axs = plt.subplots(4,5)
df1.hist(ax=axs)
df2.hist(ax=axs)

enter image description here

否则,如果您更喜欢熊猫自己创建初始子图集,则:

df1.hist(color='b')
df2.hist(color='r', ax=plt.gcf().axes)

enter image description here