如何更改计时器上的matplotlib修补程序?

2024-10-06 11:18:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含补丁的matplotlib图。在固定的时间间隔内,我想更改补丁(删除旧补丁并添加另一个补丁)。在

这是总体设置。在

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

path1 = Path(vertices, codes)
patch1 = patches.PathPatch(path1, facecolor='white', lw=0.3, fill=False)

ax.add_patch(patch1)
plt.show()

1秒后,取下补片1,然后

^{pr2}$

Tags: pathadd间隔matplotlib时间figpltax
1条回答
网友
1楼 · 发布于 2024-10-06 11:18:04

您可以使用matplotlib.animation.FuncAnimation每秒绘制一个新的多边形。在

import matplotlib.pyplot as plt
import matplotlib.animation
import numpy as np; np.random.seed(1)

def get_vertices():
    p = np.random.rand(4,2)*.8+.1
    d = p-np.mean(p,axis=0)
    s = np.arctan2(d[:,0], d[:,1])
    return p[np.argsort(s),:]

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

patches = []
kw = dict(edgecolor='darkorange', lw=3, facecolor="peachpuff")
patches.append(plt.Polygon(get_vertices(),**kw)) 
# of course  PathPatch(Path(get_vertices())) 
# would also work
ax.add_patch(patches[0])

def update(i):
    patches[0].remove()
    patches[0] = plt.Polygon(get_vertices(),**kw)
    ax.add_patch(patches[0])

ani = matplotlib.animation.FuncAnimation(fig, update, interval=1000)
plt.show()

enter image description here

相关问题 更多 >