gpt4 book ai didi

python - 尝试使用 python(matplotlib 和 numpy)绘制函数,如果我稍微改变它,就会遇到值错误和类型错误

转载 作者:太空宇宙 更新时间:2023-11-03 20:41:19 25 4
gpt4 key购买 nike

我正在尝试绘制这个方程,但目前遇到了这些错误。我正在使用 python 导入 numpy 和 matplotlib 。我不确定如何修复这些错误

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np


def equation(delta=0.05):
#for K = 3
#from matplotlib.mlab import bivariate_normal

x = y = np.arange(0,1,delta)
#y = np.arange(0,1,delta)
#x = np.arange(0.4,1,delta)
X,Y = np.meshgrid(x,y)

Z = (3*y-y-9*x+2*3*x)**2 - 4(9*x-3*x)(y-3*y+3-3*x)
return X, Y, Z
#x = F
#y = P

fig = plt.figure()
#ax = fig.add_subplot(111, projection'3d')
ax = Axes3D(equation(0.05))

x,y,z = Axes3D.equation(0.05)
ax.plot_wireframe(x,y,z, rstride=5, cstride=5)
plt.show()

使用x = y = np.arange(0,1,delta)时出现类型错误,表示 int 不可调用。当使用 y = np.arange(0,1,delta)x = np.arange(0.4,1,delta) 时,我收到值错误

ValueError: operands could not be broadcast together with shapes (20,) (12,).

最佳答案

欢迎来到 StackOverflow!

有几件事需要用您的代码修复 -

  1. 正如 Le Hoang Giang 所提到的,您的乘法缺少几个星号。当您编写 4(9*x-3*x) 时,Python 会尝试将“4”用作函数,但该函数不可调用,因此会出现错误。

  2. 您需要使用 X 和 Y(大写)而不是 x,y 来计算 Z,这样您就得到了 2d 表面。

  3. 您对 Axes3D 的使用不符合 reference

请在下面找到您的代码的工作版本。

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np


def equation(delta=0.05):
#for K = 3
#from matplotlib.mlab import bivariate_normal

x = y = np.arange(0,1,delta)
#y = np.arange(0,1,delta)
#x = np.arange(0.4,1,delta)
X,Y = np.meshgrid(x,y)

Z = (3*Y-Y-9*X+2*3*X)**2 - 4*(9*X-3*X)*(Y-3*Y+3-3*X)


return X, Y, Z
#x = F
#y = P

fig = plt.figure()
#ax = fig.add_subplot(111, projection'3d')
ax = Axes3D(fig)

x,y,z = equation(0.05)
ax.plot_wireframe(x,y,z, rstride=5, cstride=5)
plt.show()

关于python - 尝试使用 python(matplotlib 和 numpy)绘制函数,如果我稍微改变它,就会遇到值错误和类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56844841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com