python - Matplotlib set_data xdata 和 ydata must be same length 错误

标签 python python-2.7 numpy matplotlib

<分区>

我有一个简单的 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]))

最佳答案

之所以如此,是因为您最初创建的图表已经带有引用变量 line1。因此,当您第一次执行您创建的函数时,您已经有了一个绘图,因此一次只更改一个轴会变得错误

所以这是错误的

line1.set_xdata(x) line1.set_xdata(y)

改成

line1.set_data(x,y)

如果您已经绘制了绘图,请使用 plt.draw() 重绘以查看更改。

关于python - Matplotlib set_data xdata 和 ydata must be same length 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47872639/

相关文章:

python - tensorflow.python.framework.errors.InvalidArgumentError

python - 有没有更好的方法在python中编写以下方法?

python - 如果我在 api.onchange 方法中更改字段值,它不会在 View 中更新。为什么?

python - 来自 numpy 数组的派生类不能很好地与矩阵和掩码数组一起使用

python - 如何从Python中的离散数据获得周期曲线拟合?

Python - 在特定长度的文件中查找字符串,并且该字符串必须是大写字母和数字

python - Airflow 2/docker-compose : how to install Python dependencies for DAGs?

python - 从 Matplotlib 中的散点图提取数据

python - numpy 循环比较数组

python - multiprocessing.Pool in jupyter notebook 适用于 linux 但不适用于 windows