首页 > 解决方案 > 子图未正确填充

问题描述

我正在尝试使用 Pandas DataFrame.plot() 与以下代码并排绘制两个变量条形图:

fig, (ax1, ax2) = plt.subplots(1,2)
ax1 = train_df['Condition1'].value_counts().plot(kind='bar')
ax2 = train_df['Condition2'].value_counts().plot(kind='bar')
plt.show()

结果是这样的:

在此处输入图像描述

数据是 Kaggle 的房价数据集,但我认为回答这个问题并不重要。为了确定,我已经用多对变量尝试过这个。它只在右边显示一个情节。

有趣的是,轴的分配并不重要。如果您只指定ax1,它将显示在右侧图中。如果您只指定ax2,它将在右侧。

无论我为子图 (2,) (1,2), (2,1) 选择什么方向,都会发生这种情况。总是一个空地。

这里发生了什么?

标签: pythonpandasmatplotlibseaborn

解决方案


您已经使用第一行代码创建了轴。您的第二个和第三个代码行会覆盖这些。

您需要将ax1andax2作为参数传递给 pandas 的 plot 函数。

试试这个:

fig, (ax1, ax2) = plt.subplots(1,2)
train_df['Condition1'].value_counts().plot(kind='bar', ax=ax1)
train_df['Condition2'].value_counts().plot(kind='bar', ax=ax2)
plt.show()

在此处输入图像描述


推荐阅读