Python:循环中的Pyplot - >每次迭代累积曲线,而不是单独绘制

时间:2013-09-05 15:12:59

标签: python matplotlib plot

我想画一下,例如10个列表,每个列表由单个曲线表示并保存在单独的文件中,因此没什么特别的。

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

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

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

file1有1条曲线/列表1。

file2有2条曲线/ list1 + list2。 ...

如果有人能够解释,如果使用for循环获得每个绘图的单曲线,将会很感激。谢谢!

1 个答案:

答案 0 :(得分: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()