【发布时间】:2020-11-20 15:35:00
【问题描述】:
我正在使用 jupyter notebook,我在 for 循环中使用 matplotlib.pyplot.subplot()。在 for 循环的同一个单元格中,我调用了plt.show() 来显示图表。但是,它们太小了,所以我希望在另一个笔记本单元格上重新绘制它们,而不必重复循环,这很耗时。
所以基本上我使用如下代码运行单元格:
import matplotlib.pyplot as plt
import numpy as np
fig, axs = plt.subplots(5,1)
for ii in range(5):
#some time consuming operations
axs[ii].plot(np.random.randn(10))
plt.show()
我意识到这个数字太小了,所以在随后的单元格中,我想在一个更大的数字上重新显示以前的图。由于所有信息都包含在fig 和axs 中,我假设我不必重复循环,而只是告诉matplotlib 再次显示其信息应该已经在axs 变量中的图。
【问题讨论】:
-
将它们保存为图像(.png、.jpg)或 pdf,然后用 其他东西查看它们?为什么不想重复循环?
-
正如我所说,这需要很多时间(不是这个
random,原来是机器学习算法)。不想存了,想再显示一遍,加上就算存了,还是小了。 -
是 jupyter-notebook 问题还是您需要将 matplotlib 图形大小设置为某个最小值?如果您从 shell 提示符运行,图像/绘图是否足够大?有许多关于调整/设置 jupyter-notebook 的绘图大小的 SO Q&A,你试过了吗?
-
问题不在于图形大小,而在于如何在调用
plt.show()后重新显示子图图形。换句话说,假设你得到了一些axs和fig,上面已经绘制了一些东西:如何显示这些图? -
Matplotlib: how to show plot again? 回答你的问题了吗?
标签: python python-3.x matplotlib jupyter-notebook