骨骼和标签的动画失败(通过build_frame函数获得坐标)。 每帧大约有20个骨架,每个骨架有16个段,并且标签数量相同。 有没有办法将可变的文本框列表返回给动画?
我没有找到在更新功能中向动画添加文本列表的方法吗? 返回一个text()很好,但是不能返回动画中的文本列表。
import matplotlib.pyplot as plt
from matplotlib import collections as mc
from matplotlib.animation import FuncAnimation
....
def update(i):
read_file(i) # read input per frame
b = build_frame(i)
# build_frame : (x,y), (colors), (labels, (x,y)) of skeletons (10 -> 20)
bones = mc.LineCollection(b[0], colors=b[1], linewidths=3)
ax.add_collection(bones)
labels = []
list_text = b[2]
list_coord = b[3]
# create a text box in the middle of each skeleton
for j in range(0, len(list_coord)):
labels.append(ax.text(list_coord[j][0], list_coord[j][1], list_text[j],transform=ax.transAxes, fontsize=14, bbox=props))
ax.autoscale()
return bones, labels,
...
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_axis_off()
ax.autoscale()
ax.set_xlim(0, 2000)
ax.set_ylim(0, 800)
props = dict(boxstyle='round', facecolor='wheat', alpha=0.5)
ani = FuncAnimation(fig, update, frames=len(pose_files), interval=10, init_func=init, blit=True)
该动画对于骨骼(仅用于返回线)效果很好,但不适用于标签。 标签不会被识别为艺术家列表。
错误消息是:AttributeError:“列表”对象没有属性“ get_zorder”