返回句柄plt.scatter
有幾種方法,其中包括remove()
。所以你需要做的就是打電話。隨着你的榜樣:
x = np.linspace(-10,10,100);
[X,Y] = np.meshgrid(x,x)
g = np.exp(-(np.square(X) + np.square(Y))/2)
im_handle = plt.imshow(g)
scat = plt.scatter(50,50,c='r', marker='+')
# image, with scatter point overlayed
scat.remove()
plt.draw()
# underlying image, no more scatter point(s) now shown
# For completeness, can also remove the other way around:
plt.clf()
im_handle = plt.imshow(g)
scat = plt.scatter(50,50,c='r', marker='+')
# image with both components
im_handle.remove()
plt.draw()
# now just the scatter points remain.
(?幾乎)所有matplotlib繪製函數返回一個句柄,其中有一些方法來去除所呈現的項目。
請注意,您需要調用重繪看remove()
的影響 - 從刪除幫助(我的重點):如果可能的話
從圖中刪除的藝術家。效果將不會是 ,直到該圖被重新繪製,例如 :meth:matplotlib.axes.Axes.draw_idle
。
感謝您的回答。你在哪裏可以找到像這個特定功能存在的metods?在pyplot文檔上,我只找到參數,但不是方法... –
好問題。在參數列表之後的[scatter docs](http://matplotlib.org/api/pyplot_api.html?highlight=scatter#matplotlib.pyplot.scatter)中,它還描述了返回類型。在這種情況下,它是一個'PathCollection',並通過鏈接顯示該類繼承自'Collection',然後'artist.Artist'和'cm.ScalarMappable'。其中每一種都增加了幾種方法,'Artist'類是提供'remove()'的。您還可以在與'dir(scat)'的交互式會話中找到更多信息。 – Bonlenfum
@MathieuPaurisse另外請清楚繪製_functions_和他們返回的_objects_之間的區別。 – tacaswell