【问题标题】:why plot is not showing despite putting subplot() method?为什么尽管放置了 subplot() 方法却没有显示情节?
【发布时间】:2021-12-06 07:59:31
【问题描述】:
plt.plot(np.log(df['Total Cases']), np.log(df['Active']), 'go')
plt.subplot(1,3,1)

plt.plot(np.log(df['Total Cases']), np.log(df['Discharged']), 'b*')
plt.subplot(1,3,2)

plt.plot(np.log(df['Total Cases']), np.log(df['Deaths']), 'go')
plt.subplot(1,3,3)

plt.tight_layout()
plt.show()

我在 jupyter notebook 和 kaggle 内核中运行上面的代码,但第一个子图没有显示任何结果,而其他两个子图在第一和第二位显示输出? 怎么可能有任何代码错误或参数丢失?

【问题讨论】:

  • 颠倒顺序:plt.subplot(1,3,1)然后 plt.plot(...)

标签: python pandas numpy matplotlib


【解决方案1】:

让我们逐行检查您的代码,看看会发生什么

  1. plt.plot(...'Active']), 'go') 在整个图形上创建一个 Axes 并在其上绘图。
  2. plt.subplot(1,3,1) 在图的左侧创建一个轴。正如文档所说,“创建一个新的轴将删除与它重叠的任何预先存在的轴,而不是共享一个边界”。由于这个新轴与第 1 步的轴重叠,因此第 1 步的图被删除。
  3. plt.plot(...'Discharged']), 'b*') 在步骤 2 中创建的当前轴上绘制。
  4. plt.subplot(1,3,2) 在图的中间创建一个轴。
  5. plt.plot(...'Deaths']), 'go') 在步骤 4 中创建的当前轴上绘图
  6. plt.subplot(1,3,3) 在图的右侧创建一个轴。它保持空白,因为之后您没有在其上绘制任何内容。

您可能打算在每个绘图之前创建轴,因此所有 3 个绘图最终都在图中:

plt.subplot(1,3,1)
plt.plot(np.log(df['Total Cases']), np.log(df['Active']), 'go')

plt.subplot(1,3,2)
plt.plot(np.log(df['Total Cases']), np.log(df['Discharged']), 'b*')

plt.subplot(1,3,3)
plt.plot(np.log(df['Total Cases']), np.log(df['Deaths']), 'go')

【讨论】:

    猜你喜欢
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 2021-03-26
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多