我想自动生成一系列被剪裁成补丁的图。如果我尝试重复使用补丁对象,它会在画布上移动位置。
该脚本(基于 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)
The first plot looks like this:
But in the second '1.png', the patch has moved..
然而,再次重新绘制不会移动补丁。 “2.png”和“3.png”看起来与“1.png”完全相同。
谁能指出我做错了什么的正确方向?
实际上,我使用的补丁相对复杂,需要一些时间才能生成 - 如果可能的话,我宁愿不必每一帧都重新制作它们。