Python 如何更改计时器上的matplotlib修补程序?
我有一个包含补丁的matplotlib绘图。我希望定期更改补丁(删除旧补丁并添加另一个补丁) 这是一般设置Python 如何更改计时器上的matplotlib修补程序?,python,matplotlib,timer,Python,Matplotlib,Timer,我有一个包含补丁的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,然
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,然后
path2 = Path(vertices2, codes2)
patch2 = patches.PathPatch(path2, facecolor='white', lw=0.3, fill=False)
ax.add_patch(patch2)
可以使用
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()
您可以使用
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()