use*_*044 3 python numpy matplotlib python-2.7
我有一个简单的matplotlib
图表,我想通过函数向其中添加点。似乎当我扩展数组存储 x 和 y 值时,RuntimeError: xdata and ydata must be the same length
尽管两个数组都是 6 个值,但我还是收到了错误。
import matplotlib.pyplot as plt
import numpy as np
import time
x = np.array([1, 2, 3])
y = np.array([1, 7, 5])
plt.ion()
fig = plt.figure()
ax = fig.add_subplot(111)
line1, = ax.plot(x, y, 'r-')
plt.show()
def update_points(new_x, new_y):
global x, y, fig, line1, ax
time.sleep(2)
x = np.append(x, new_x)
y = np.append(y, new_y)
line1.set_xdata(x)
line1.set_xdata(y)
ax.relim()
ax.autoscale_view()
fig.canvas.draw()
update_points(np.array([4, 5, 6]), np.array([4, 5, 3]))
Run Code Online (Sandbox Code Playgroud)
之所以如此,是因为您最初已经创建了一个带有参考变量的图形line1
。因此,当你执行你创建的函数时,第一次说,你已经有了一个情节,因此一次只改变一个轴是错误的
所以这是错误的
line1.set_xdata(x)
line1.set_xdata(y)
将其更改为
line1.set_data(x,y)
如果您已经绘制了绘图,请使用重新绘制plt.draw()
以查看更改。
归档时间: |
|
查看次数: |
6862 次 |
最近记录: |