我正在尝试设置一个动画,以实时显示通过GPIB接口获取的一些数据。只要使用一条线,即matplotlib的plot()函数,我就可以很好地工作。
但是,在获取离散数据点时,我想使用scatter()函数。 这给我带来了以下错误: “set_array()只接受2个参数(给定3个参数)”
错误在下面代码中所示的2个位置显示。
def intitalisation():
realtime_data.set_array([0],[0]) ******ERROR HERE*******
return realtime_data,
def update(current_x_data,new_xdata,current_y_data, new_ydata):#
current_x_data = numpy.append(current_x_data, new_xdata)
current_y_data = numpy.append(current_y_data, new_ydata)
realtime_data.set_array( current_x_data , current_y_data ) ******ERROR HERE*******
def animate(i,current_x_data,current_y_data):
update(current_x_data,new_time,current_y_data,averaged_voltage)
return realtime_data,
animation = animation.FuncAnimation(figure, animate, init_func=intitalisation, frames = number_of_measurements, interval=time_between_measurements*60*1000, blit=False, fargs= (current_x_data,current_y_data))
figure = matplotlib.pyplot.figure()
axes = matplotlib.pyplot.axes()
realtime_data = matplotlib.pyplot.scatter([],[])
matplotlib.pyplot.show()
所以我的问题是,为什么set_array()认为我正在向它传递3个参数?我不明白,因为我只能看到两个论点。 我怎样才能纠正这个错误呢?
编辑:我应该注意,显示的代码并不完整,只是有错误的部分,为了清楚起见,删除了其他部分。
我觉得你在一些事情上有点困惑。
set_array
控制颜色数组。对于scatter
返回的集合,可以使用set_offsets
来控制x&y位置。(使用哪种方法取决于所讨论艺术家的类型。)artist.set_array
是一个对象的方法,所以第二个参数与第三个参数会出现,所以第一个参数是有问题的对象。为了解释第一点,这里有一个简单的暴力动画:
为了解释第二点,在python中定义类时,第一个参数是该类的实例(通常称为
self
)。每当您调用对象的方法时,都会在幕后传递此消息。例如:
相关问题 更多 >
编程相关推荐