我正在尝试将方法'set_data'和'set_3d_properties'用于matplotlib.pyplot.plot对象。
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.axes3d as p3
import matplotlib.animation as animation
class animationObj(object):
def __init__(self):
self.fig= plt.figure()
self.ax = self.fig.add_subplot(111, projection='3d')
self.plot = []
self.plot.append(self.ax.plot([0], [0], [0], 'bo', markersize=10)[0])
self.ani = animation.FuncAnimation(self.fig, self, frames=range(0,10), interval=50, repeat_delay=1000)
def show(self):
return plt.show()
def __call__(self, i):
self.plot[0].set_data([x[i]], [y[i]])
self.plot[0].set_3d_properties([z[i]], 'z')
return self.plot[0]
我使用了以下示例:http://matplotlib.org/1.4.2/examples/animation/simple_3danim.html
但似乎set_data和set_3d_properties无法正常工作。有谁知道我做错了什么?
答案 0 :(得分:0)
问题不在于更新x,y,z数据的代码,但错误在于第一次创建动画时,x,y和z轴的范围是为第一组数据。因此,为x,y和z设置范围解决了问题:
self.ax.set_xlim([0, 5])
self.ax.set_ylim([0, 5])
self.ax.set_zlim([0, 5])