4

我想绘制例如 10 个列表,每个列表由一条曲线表示并保存在一个单独的文件中,所以没什么特别的。

问题是每次迭代后绘制的曲线都不会被删除,因此在每次迭代/绘图/文件中,新曲线只是简单地添加到先前迭代的曲线中。

list1 = [...]
...
list10 = [...]
all_Lists = [list1, ..., list10]

for i in range(10):
    pyplot.plot(all_Lists[i])
    pyplot.savefig(...)

file1 绘制了 1 条曲线/list1。

file2 绘制了 2 条曲线 / list1+list2。...

如果有人可以解释,将不胜感激,如何使用 for 循环在每个图中获得一条曲线。谢谢!

4

1 回答 1

2

我认为混淆来自于您不使用 OO 接口这一事实。Pyplot 很方便,但在后台处理了很多事情,让你不知道真正发生了什么。在您的示例中,您可以即时创建图形和轴,并继续在相同的轴上绘图。

在绘图之前清除轴将解决您的问题,尝试添加pyplot.cla()为循环的第一行。

我更喜欢制作一个图形和轴对象:

all_Lists = [list(np.random.randn(30).cumsum()) for i in range(10)]

fig, ax = plt.subplots()

for n, curv in enumerate(all_Lists):
    ax.cla()
    ax.plot(curv)
    fig.savefig()
于 2013-09-05T15:20:33.303 回答