作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在 Python 中为矢量(例如风)制作动画。我尝试在 pylab 中使用 quiver 函数,并结合 matplotlib 中的 matplotlib.animation。但是,结果显示 'QuiverKey' object is not subscriptable
。我认为这是因为我对这两个功能没有完全了解,或者只是这两个功能不匹配。下面是我的代码,它实际上是 matplotlib 中的箭袋和动画功能的结合。
def update_line(num, data, line):
line.set_data(data[...,:num])
return line,
X,Y = np.meshgrid(np.arange(0,2*np.pi,.2),np.arange(0,2*np.pi,.2) )
U = np.cos(X)
V = np.sin(Y)
fig1 = plt.figure()
Q = quiver( X[::3, ::3], Y[::3, ::3], U[::3, ::3], V[::3, ::3],
pivot='mid', color='r', units='inches' )
data = quiverkey(Q, 0.5, 0.03, 1, r'$1 \frac{m}{s}$', fontproperties={'weight': 'bold'})
plt.axis([-1, 7, -1, 7])
title('scales with plot width, not view')
l, = plt.plot([], [], 'r-')
plt.xlabel('x')
plt.ylabel('y')
plt.title('test')
line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l),
interval=50, blit=True)
plt.show()
最佳答案
这是一个让您入门的示例:
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
X, Y = np.mgrid[:2*np.pi:10j,:2*np.pi:5j]
U = np.cos(X)
V = np.sin(Y)
fig, ax = plt.subplots(1,1)
Q = ax.quiver(X, Y, U, V, pivot='mid', color='r', units='inches')
ax.set_xlim(-1, 7)
ax.set_ylim(-1, 7)
def update_quiver(num, Q, X, Y):
"""updates the horizontal and vertical vector components by a
fixed increment on each frame
"""
U = np.cos(X + num*0.1)
V = np.sin(Y + num*0.1)
Q.set_UVC(U,V)
return Q,
# you need to set blit=False, or the first set of arrows never gets
# cleared on subsequent frames
anim = animation.FuncAnimation(fig, update_quiver, fargs=(Q, X, Y),
interval=50, blit=False)
fig.tight_layout()
plt.show()
关于python - 在 Python 中绘制动画箭袋,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19329039/
我用黑色 turtle 创建了一个形状(白色矩形)而不是一条线!然后我移动屏幕底部的白色形状以创建一个必须从左向右移动的桨。我必须保持形状但删除黑色箭头。怎么办? from turtle import
我是一名优秀的程序员,十分优秀!