【问题标题】:Subplots not populating correctly子图未正确填充
【发布时间】:2020-08-19 18:27:54
【问题描述】:

我正在尝试使用 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) 选择什么方向,都会发生这种情况。总是一个空地。

这是怎么回事?

【问题讨论】:

    标签: python pandas matplotlib seaborn


    【解决方案1】:

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

    您需要将 ax1ax2 作为参数传递给 pandas 的绘图函数。

    试试这个:

    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()
    

    【讨论】:

    • 谢谢!它完美地工作。但是,我正在查看 Series.plot() 的文档,但没有提到 ax 参数。它必须是 matplotlib **kwargs 之一。
    • 不客气!很高兴你能解决它。 ?我也很快检查了文档。我也认为 ax 参数是 kwargs 之一。
    猜你喜欢
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    相关资源
    最近更新 更多