小编Chr*_*ann的帖子

使用matplotlib标记动画点

我有一个带线条的动画,现在我想标记点数.我尝试plt.annotate()plt.text()但我试过但是实验室不动了.这是我的示例代码:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

def update_line(num, data, line):
    newData = np.array([[1+num,2+num/2,3,4-num/4,5+num],[7,4,9+num/3,2,3]])
    line.set_data(newData)
    plt.annotate('A0', xy=(newData[0][0],newData[1][0]))
    return line,


fig1 = plt.figure()

data = np.array([[1,2,3,4,5],[7,4,9,2,3]])
l, = plt.plot([], [], 'r-')
plt.xlim(0, 20)
plt.ylim(0, 20)
plt.annotate('A0', xy=(data[0][0], data[1][0]))
# plt.text( data[0][0], data[1][0], 'A0')

line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l),
    interval=200, blit=True)
plt.show()
Run Code Online (Sandbox Code Playgroud)

你能帮我吗?

我的下一步是:我有这些点的起源向量.这些向量在每个动画步骤中改变它们的长度和方向.我该如何为这些动画制作动画?

没有动画,这有效:

soa =np.array( [ [data[0][0],data[1][0],F_A0[i][0][0],F_A0[i][1][0]],
               [data[0][1],data[1][1],F_B0[i][0][0],F_B0[i][1][0]],
               [data[0][2],data[1][2],F_D[i][0][0],F_D[i][1][0]] ])
X,Y,U,V = zip(*soa)
ax = plt.gca()
ax.quiver(X,Y,U,V,angles='xy',scale_units='xy',scale=1)
Run Code Online (Sandbox Code Playgroud)

首先,非常感谢您快速而有用的答案! …

python animation annotations matplotlib

6
推荐指数
2
解决办法
8818
查看次数

标签 统计

animation ×1

annotations ×1

matplotlib ×1

python ×1