Tôi đang cố gắng tạo hiệu ứng cho một vectơ như gió trong Python. Tôi đã cố gắng sử dụng chức năng rung trong pylab và kết hợp với matplotlib.animation từ matplotlib. Tuy nhiên, kết quả cho biết 'QuiverKey' object is not subscriptable
. Tôi nghĩ rằng đó là bởi vì tôi không hiểu đầy đủ về hai chức năng này hoặc chỉ hai chức năng này không khớp với nhau. Dưới đây là mã của tôi, nó thực sự là sự kết hợp giữa rung động và các chức năng hoạt hình từ matplotlib.Vẽ các bộ rung động trong Python
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()
Vâng, 'dữ liệu' là một' QuiverKey' đối tượng - nó đại diện cho một chìa khóa cho một âm mưu rung động, không phải là một mảng các giá trị mà bạn có thể lập chỉ mục. Tôi thực sự không hiểu những gì bạn đang nhắm đến - bạn nói rằng bạn muốn vẽ quivers hoạt hình, nhưng chức năng hoạt hình của bạn trông giống như nó có nghĩa là chỉ cần thêm điểm vào một dòng. Bạn có thể mô tả những gì bạn đang cố gắng đạt được không? –
Xin chào ali_m, tôi thực sự đánh giá cao nhận xét và trợ giúp của bạn. Mục tiêu của tôi là tạo ra một hình ảnh động mà những người quấy rầy đang di chuyển vào các hướng mũi tên. Có lẽ sự hiểu biết của tôi về cấu trúc hàm này quá thấp. Bạn sẽ giúp tôi hiểu làm thế nào tôi làm cho mỗi rung động di chuyển vào mỗi mũi tên (vector) hướng? – Isaac
Tôi vẫn không hiểu ý bạn là gì. Bạn có muốn thay đổi độ dài và góc của mũi tên hay bạn muốn di chuyển điểm xoay quanh chúng? Theo như tôi biết, không có cách nào thay đổi tọa độ x, y của một âm mưu rung khi nó đã được tạo ra, nhưng bạn có thể sử dụng 'Q.set_UVC()' để cập nhật các vectơ mũi tên. –