我想画一下,例如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循环获得每个绘图的单曲线,将会很感激。谢谢!
答案 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()