不完全。首先,plt.plot
調用不返回軸,它將返回Line2D對象的列表,每個繪製一條線。您可以使用Matplotlib的OO界面爲每個繪圖創建一個單獨的座標軸,然後有選擇地將它們添加爲子圖等。有多種不同的方式可以選擇性地顯示繪圖。
但是對於你的例子,你可以利用Line2D的alpha值,即它是多麼不透明,使任何一條線不可見。這裏是你的榜樣的修改版本:
import matplotlib.pyplot as plt
line1 = plt.plot(range(5),range(5))
line2 = plt.plot([x+1 for x in range(5)],[x+1 for x in range(5)])
line3 = plt.plot([x+2 for x in range(5)],[x+2 for x in range(5)])
print line3, " see I'm a list of lines"
print line3[0].get_alpha()
line3[0].set_alpha(0) # make complete opaque
#plt.show([ax1,ax2])
plt.gcf().savefig('line3opaque.png')
line3[0].set_alpha(1) # make visible
line1[0].set_alpha(0) # make opaque
plt.gcf().savefig('line1opaque.png')
plt.show()
我儲存的第一個數字是「line3opaque.png」;這是我得到:
3號線不在那裏,1號線和2號線是。對於 'line1opaque.png' 我得到:
現在我們行1人失蹤。
謝謝,速度是一個問題,所以我寧願這種方法。真的認爲這很簡單,我錯過了一些明顯的東西 – Anake
@Anake:謝謝。所有這一切背後的原理是繪製了一些東西:一個'plot()'調用將線條等對象添加到Matplotlib Axis中,並且大多忘記它們來自哪裏。一旦添加完成,刪除它們一定需要幾個步驟。 – EOL