我想自动生成一系列裁剪为补丁的图。如果我尝试重用一个补丁对象,它会在画布上移动位置。
该脚本(基于 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”完全一样。
谁能指出我做错了什么的正确方向?
实际上,我使用的补丁相对复杂并且需要一些时间来生成——如果可能的话,我宁愿不必在每一帧都重新制作它们。