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)
您好,我正在尝试在 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)