我无法修复此matplotlib错误用于绘图

col17t5w  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(110)

我试着写了一些代码来绘制二次函数,但matplotlib一直给我这个错误:ValueError:x和y必须具有相同的第一维度,但具有形状(11,)和(0,)以下是代码:

import matplotlib.pyplot as plt
y =[]
for i in y:
    x = -5
    while x >= -5 and x <= 5:
        i = ((2*x**2) + (3*x) + 5)
        x += 1
plt.plot([-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5], y)
plt.show()
ovfsdjhp

ovfsdjhp1#

你的for循环是无用的,它永远不会运行,因为y最初是空的。
你的代码应该是:

y = []
x = -5
while x >= -5 and x <= 5:
    i = ((2*x**2) + (3*x) + 5)
    y.append(i)
    x += 1
plt.plot([-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5], y)

或者:

x = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
y = []

for i in x:
    y.append(((2*i**2) + (3*i) + 5))

plt.plot(x, y)

但更好的方法是使用numpy数组:

import numpy as np
import matplotlib.pyplot as plt

x = np.array([-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5])
y = ((2*x**2) + (3*x) + 5)

plt.plot(x, y)

输出:

相关问题