如何在1个图中合并2个数据框直方图?

时间:2019-04-19 04:18:36

标签: python pandas matplotlib

我想使用显示数据框中所有直方图的代码。那将是df.hist(bins=10)。但是,我想添加另一个显示CDF df_hist=df.hist(cumulative=True,bins=100,density=1,histtype="step")

的直方图

我尝试使用fig=plt.figure()和  plt.subplot(211)。但是,此df.hist实际上是pandas函数的一部分,而不是matplotlib函数的一部分。我还尝试设置轴并向每个直方图添加ax = ax1和ax2选项,但是它不起作用。

如何将这些直方图组合在一起? 有帮助吗?

我想要组合的直方图就是这样。我想并排展示它们,或将第二个放在第一个的顶端。 抱歉,我不在乎让它们看起来不错。 histogram1 histogram2

2 个答案:

答案 0 :(得分:2)

可以将它们放在一起:

# toy data frame
df = pd.DataFrame(np.random.normal(0,1,(100,20)))

# draw hist
fig, axes = plt.subplots(5,4, figsize=(16,10))
df.plot(kind='hist', subplots=True, ax=axes, alpha=0.5)

# clone axes so they have different scales
ax_new = [ax.twinx() for ax in axes.flatten()]
df.plot(kind='kde', ax=ax_new, subplots=True)
plt.show()

输出:

enter image description here

也可以并排绘制它们。例如

fig, axes = plt.subplots(10,4, figsize=(16,10))
hist_axes = axes.flatten()[:20]
df.plot(kind='hist', subplots=True, ax=hist_axes, alpha=0.5)

kde_axes = axes.flatten()[20:]
df.plot(kind='kde', subplots=True, ax=kde_axes, alpha=0.5)

将在kde上绘制历史记录。

答案 1 :(得分:0)

您可以在此处找到更多信息:Multiple histograms in Pandas(可能重复出现),但显然熊猫无法处理同一张图上的多个直方图。

可以,因为np.histogrammatplotlib.pyplot可以检查上面的链接以获得更完整的答案。