为什么plot不显示尽管放置subplot()方法?


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

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

  1. plt.plot(...'Active']), 'go')在整个图上创建一个轴并在其上绘图。
  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')

相关内容