如何并排绘制 2 个直方图?

Posted

技术标签:

【中文标题】如何并排绘制 2 个直方图?【英文标题】:how to plot 2 histograms side by side? 【发布时间】:2017-12-17 14:22:11 【问题描述】:

我有 2 个数据框。我想并排绘制基于每个列“速率”的直方图。怎么办?

我试过这个:

import matplotlib.pyplot as plt
plt.subplot(1,2,1)

dflux.hist('rate' , bins=100) 
plt.subplot(1,2,2) 
dflux2.hist('rate' , bins=100) 
plt.tight_layout() 
plt.show() 

它没有达到预期的效果。它显示了两个空白图表,然后是一个填充图表。

【问题讨论】:

【参考方案1】:

使用subplots 定义具有两个轴的图形。然后使用ax 参数指定要在hist 内绘制的轴。

fig, axes = plt.subplots(1, 2)

dflux.hist('rate', bins=100, ax=axes[0])
dflux2.hist('rate', bins=100, ax=axes[1])

演示

dflux = pd.DataFrame(dict(rate=np.random.randn(10000)))
dflux2 = pd.DataFrame(dict(rate=np.random.randn(10000)))

fig, axes = plt.subplots(1, 2)

dflux.hist('rate', bins=100, ax=axes[0])
dflux2.hist('rate', bins=100, ax=axes[1])

【讨论】:

成功了!我还发现在我所做的每件事上都设置了一个标题:axes[0].set_title('left title') 然后axes[1].set_title('right title') @MarkGinsburg 您也可以在调用 hist 时使用 title 参数设置标题 我试过这个dflux2.hist('rate' , bins=100, ax=axes[1], title='king') ,但语法错误,上面写着Unknown Property title @MarkGinsburg 嗯,我猜我错了(-:幸好你想通了 @piRSquared,您是 Putnam 考试大师!:) 问题,如果我对 2 或 3 个散点图执行此操作,如何让它们彼此相邻?这是我目前拥有的代码:**bold [fig, axes = plt.subplots(1,2) plt.xlim(0,2000000) plt.ylim(0,250000) ax.scatter(Sales_Force_Before_Merger.Revenues[ Booked], Sales_Force_Before_Merger.Amount[Booked], alpha=0.05, color='g') ax.set_title("Revenue vs Amount for Booked Before Merger") ax.set_xlabel("Revenue", size = 10) ax.set_ylabel( "数量", size = 10) ax.plt.xticks(fontsize=10) ax.plt.show(ax=axes[0])] **

以上是关于如何并排绘制 2 个直方图?的主要内容,如果未能解决你的问题,请参考以下文章

从两个不同的图表创建组合的单个条形图或直方图,并在第 1 年和第 2 年中并排显示条形图

在 Plotly Python 中使用时间滑块绘制连续直方图

如何根据两列将直方图拆分为多个图?

如何从 R 中的数据子集创建两个并排图? [复制]

MATLAB | 如何绘制二维散点主方向直方图

MATLAB | 如何绘制二维散点主方向直方图