-1
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 内核中运行上面的代码,但是第一个子图没有显示任何结果,而其他两个子图在第一和第二位显示输出?怎么可能有任何代码错误或参数丢失?

4

1 回答 1

1

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

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

您可能打算在每个绘图之前创建轴,因此所有 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')
于 2021-10-19T11:51:15.990 回答