如何将for循环中生成的多个图形(而不是子图)保存为一个图形?

时间:2018-08-31 14:58:05

标签: python python-3.x matplotlib plot jupyter-notebook

在Jupyter Notebook中,我编写了以下代码as MCVE

import matplotlib.pyplot as plt
import numpy as np

x1 = np.linspace(-1, 1, 50)
for x in range(4):
    plt.figure()
    plt.plot(x1)
    plt.savefig(str(x)+".png") # save figures separately

它产生了4个地块,与预期的一样。它们连续排在下面。

我希望有一个保存的输出,其中包含所有4个图。我不介意Jupyter Notebook在保存时不显示图。

我的尝试:将图形分别保存为0.png,1.png,2.png,3.png,然后垂直合并。

我希望有一种更简单的方法可以做到这一点。如何保存一个输出?

编辑:

如所建议的,我可以像这样进行子图:

fig,axes = plt.subplots(nrows=4)
fig.set_size_inches(8,12)
x1 = np.linspace(-1, 1, 50)
for ax in axes:
    ax.plot(x1)
plt.savefig("save_fig.png")

我想有很多数字,而不是一个有很多子图的虚假图形。 如何在不使用子图的情况下保存多个图形?

1 个答案:

答案 0 :(得分:0)

初始化图形并为每个循环添加一个子图。然后在循环完成后保存!