您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 在matplotlib中重用补丁对象而不移动它们的位置

5b51 2022/1/14 8:21:17 python 字数 3497 阅读 481 来源 www.jb51.cc/python

我想自动生成一系列剪辑到修补程序的图.如果我尝试重用补丁对象,它会在画布上移动位置.这个脚本(根据Yann之前的一个问题的答案)演示了正在发生的事情.import pylab as plt import scipy as sp import matplotlib.patches as patches sp.random.seed(100) x = sp.r

概述

我想自动生成一系列剪辑到修补程序的图.如果我尝试重用补丁对象,它会在画布上移动位置.

这个脚本(根据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,count)

一个情节看起来像这样:

但是在第二个’1.png’中,补丁已经移动了..

然而,再次重新绘制不会移动补丁. ‘2.png’和’3.png’看起来与’1.png’完全相同.

任何人都能指出我正在做错的方向吗?

实际上,我正在使用的补丁相对复杂并且需要一些时间来生成 – 如果可能的话,我宁愿不必每帧都重新制作它们.

import pylab as plt
import scipy as sp
import matplotlib.patches as patches

sp.random.seed(100)
patch = patches.Circle((.75,fc='none')

fig = plt.figure()
ax = fig.add_subplot(111)

def doplot(x,count):
    ax.set_xlim(-0.2,1.2)
    ax.set_ylim(-0.2,1.2)
    x = sp.random.random(100)
    y = sp.random.random(100)
    im = ax.scatter(x,y)
    ax.add_patch(patch)
    im.set_clip_path(patch)
    plt.savefig(str(count) + '.png')
    ax.cla()

for count in xrange(4):
    doplot(x,count)

总结

以上是编程之家为你收集整理的python – 在matplotlib中重用补丁对象而不移动它们的位置全部内容,希望文章能够帮你解决python – 在matplotlib中重用补丁对象而不移动它们的位置所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶