我想绘制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循环来获得每个绘图的单个曲线,我将不胜感激。谢谢
我认为混淆的原因是您没有使用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()