मैं पैट पर चिपकने वाले प्लॉट्स की एक श्रृंखला उत्पन्न करना चाहता हूं। यदि मैं पैच ऑब्जेक्ट को आज़माकर पुनः उपयोग करता हूं, तो यह कैनवास में स्थिति को स्थानांतरित करता है।matplotlib में पैच ऑब्जेक्ट्स को बिना किसी स्थानांतरित स्थिति
यह स्क्रिप्ट (यान द्वारा पिछले प्रश्न के उत्तर पर आधारित) दर्शाती है कि क्या हो रहा है।
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', पैच ले जाया गया है .. में
हालांकि फिर से replotting पैच स्थानांतरित नहीं होता है । '2.png' और '3.png' बिल्कुल '1.png' जैसा दिखता है।
क्या कोई मुझे गलत दिशा में सही दिशा में इंगित कर सकता है ??
असल में, मेरे द्वारा उपयोग किए जा रहे पैच अपेक्षाकृत जटिल हैं और उत्पन्न करने में कुछ समय लगता है - यदि संभव हो तो मैं उन्हें हर फ्रेम को रीमेक नहीं करना चाहूंगा।
वास्तव में विचित्र भाग यह है कि यह केवल तब होता है जब आप 'savefig' कहते हैं, और यदि आप 'शो' कहते हैं तो नहीं ... –