如何将在 for 循环中生成的多个图形而不是 SUBPLOTS 保存为一个图形? [复制]
Posted
技术标签:
【中文标题】如何将在 for 循环中生成的多个图形而不是 SUBPLOTS 保存为一个图形? [复制]【英文标题】:How to save multiple figures, NOT SUBPLOTS, produced in a for loop as one figure? [duplicate] 【发布时间】:2019-02-06 15:26:09 【问题描述】:在 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")
我想要很多人物,而不是一个有很多子情节的人物。 如何在不使用子图的情况下保存多个数字?
【问题讨论】:
创建一个包含 4 个子图的图形? 使用plt.subplots
。阅读基本文档。
这个问题有几个重复项,在创建子图时有不同的答案。我建议将其标记为重复。
是的,subplot 方法有效。我想有其他方法,但它确实有效。
我不认为它是重复的,因为 subplot 方法基本上是创建一个图而不是保存它,我想将许多图保存为一个,所以 Q 没有通过 subplotting 来回答。
【参考方案1】:
初始化一个图形并为每个循环添加一个子图。然后在循环完成后保存!
【讨论】:
是的,我喜欢这种方法作为一种变通方法,但并没有真正展示如何处理多个地块,而不是一个包含许多子地块的大地块。以上是关于如何将在 for 循环中生成的多个图形而不是 SUBPLOTS 保存为一个图形? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
需要使用 For 循环而不是 Azure Pipeline Template yaml 中的每个循环
R markdown:使用for循环生成文本并显示图形/表格