如何解决valueError 是什么意思?
您好,我正在尝试用 python 绘制绘图,但出现错误:
ValueError: x 和 y 必须具有相同的第一维,但具有形状 (1,) 和 (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)。您正在传递迭代器的末尾(一个 int 值在您的范围(50)和一个列表的末尾。而是用 plot.plot(...) 替换这两行:
plt.plot(x = Eks,y = Lin)
或者也许:
plt.scatter(x = Eks,y = Lin)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。