我想自動生成一系列被修剪爲修補程序的圖。如果我嘗試重新使用修補程序對象,它將在畫布上移動位置。重新使用matplotlib中的修補程序對象而不移動它們的位置
此腳本(基於對Yann前一個問題的回答)演示了發生的事情。
import pylab as plt
import scipy as sp
import matplotlib.patches as patches
sp.random.seed(100)
x = sp.random.random(100)
y = sp.random.random(100)
patch = patches.Circle((.75,.75),radius=.25,fc='none')
def doplot(x,y,patch,count):
fig = plt.figure()
ax = fig.add_subplot(111)
im = ax.scatter(x,y)
ax.add_patch(patch)
im.set_clip_path(patch)
plt.savefig(str(count) + '.png')
for count in xrange(4):
doplot(x,y,patch,count)
第一個情節是這樣的:
但在第二個「1.png」,該補丁已經移動..
但是再次型重構不動補丁。 '2.png'和'3.png'看起來與'1.png'完全一樣。
任何人都可以指出我在做什麼錯了嗎?
實際上,我使用的補丁比較複雜,需要一些時間來生成 - 如果可能的話,我寧願不必在每一幀都重新制作它們。
真正的bizzare部分是,這隻會發生,如果你打電話'savefig',而不是如果你打電話'show' ... –