我想将三个图保存到文件中。在第一个文件中,应该包含所有三个图,在第二个文件中只包含两个图,在第三个图中只包含一个图。 我的想法如下:
import matplotlib.pyplot as plt
line1 = plt.plot([1,2,3],[1,2,3])
line2 = plt.plot([1,2,3],[1,6,18])
line3 = plt.plot([1,2,3],[1,1,2])
fig.savefig("testplot1.png")
line1[0].remove()
fig.savefig("testplot2.png")
line2[0].remove()
fig.savefig("testplot3.png")
现在,这很好用。问题是我想使用错误栏。所以我试过了:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
line1=ax.errorbar([1,2,3],[1,2,3],yerr=[0.2,0.2,0.2])
line2=ax.errorbar([1,2,3],[1,6,18],yerr=[0.2,0.2,0.2])
line3=ax.errorbar([1,2,3],[1,1,2],yerr=[0.2,0.2,0.2])
fig.savefig("testplot1.png")
line1[0].remove()
fig.savefig("testplot2.png")
line2[0].remove()
fig.savefig("testplot3.png")
现在线条仍被移除,但错误栏仍然存在。我无法弄清楚如何删除错误栏的所有部分。有人可以帮助我吗?
答案 0 :(得分:2)
ax.errorbar
返回三件事:
您需要将它们全部删除才能完全删除"删除"情节
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
line1=ax.errorbar([1,2,3],[1,2,3],yerr=[0.2,0.2,0.2])
line2=ax.errorbar([1,2,3],[1,6,18],yerr=[0.2,0.2,0.2])
line3=ax.errorbar([1,2,3],[1,1,2],yerr=[0.2,0.2,0.2])
fig.savefig("testplot1.png")
line1[0].remove()
for line in line1[1]:
line.remove()
for line in line1[2]:
line.remove()
fig.savefig("testplot2.png")
line2[0].remove()
for line in line2[1]:
line.remove()
for line in line2[2]:
line.remove()
fig.savefig("testplot3.png")
请注意,您必须迭代第二个和第三个参数,因为它们实际上是列出对象。