最近开始学习Python,发现确实好用,简单而高效,但毕竟不是系统学习。工作后大部分时间都是一边实践一边学习,有不会的地方随时查找资料。
要实现的功能:
目标轨迹存在动态变换刷新,因此需要对轨迹线条动态创建和赋值
功能实现的思路:
使用matplotlib.animation中的FuncAnimation来实现,创建成员变量lines用于存储所有的轨迹线段
存在的问题:
FuncAnimation中的func回调函数在返回后会出现错误
self.lines = [self.ax.plot(np.array(tt.ax), np.array(tt.ay)) for tt in targets_tracks]
return self.lines
提示错误信息为AttributeError: ‘list’ object has no attribute ‘get_zorder’。
分析原因:
原因在于self.lines的每个子项都是list,即plot函数的返回值是个list
解决方式:
self.lines.clear()
for tt in targets_tracks:
ln, = self.ax.plot(np.array(tt.ax), np.array(tt.ay))
self.lines.append(ln)
return self.lines
将plot每个返回的子项的list中得到所需的内容,再将其组成新的list,返回。
仅此记录,作为初学者,还请各位python专家指导一二