valueError 是什么意思?

What does the valueError mean?

您好,我正在尝试在 python 中绘制图,但出现错误:

ValueError: x and y must have same first dimension, but have shapes (1,) and (50,)

这是上面的代码

L0 = 5.2 # [m]
v = np.linspace(0,2,50) 

Eks = []
Lin = []
x= np.array(vertikalForskyvning)
for vertikalForskyvning in range(50):
    L_eks = L0*np.sqrt(1+((24/L0)*(v/L0))+(v/L0)**2)
    L_lin = L0*(1+((12/13)*(v/L0)))
    DL_eks = L_eks-L0
    DL_lin = L_lin-L0
    Eks.append(L_eks)
    Lin.append(L_lin)

print(f"Eksakt forlengelse: {DL_eks}")
print(f"Linealisert forlengelse: {DL_lin}")

plt.plot(vertikalForskyvning, Eks)
plt.plot(vertikalForskyvning, L_lin)
plt.xlabel("Vertikalforsyvning [m]")
plt.ylabel("Delta L [m]")
plt.legend(["Eksakt","Linearisert"])
plt.title("Forelngelse av stag")
plt.show()

感谢您的帮助:)

注释掉x= np.array(vertikalForskyvning)后,vertikalForskyvning只是一个迭代器。然后 for 循环生成 Eks 和 Lin 的列表。从文档中,plot 需要两个列表:(x,y)。您正在传递迭代器的末尾(一个在范围(50)末尾有一个值的 int 和一个列表。而是用 plot.plot(...) 替换这两行:

plt.plot(x = Eks,y = Lin)

或者也许:

plt.scatter(x = Eks,y = Lin)