Python 当x和y表示为一维阵列时,如何使用matplotlib创建三维曲面打印?
我想从阵列x,y,z创建一个三维曲面图,其中len(x)和len(z)=250,len(y)=7 产生以下错误:Python 当x和y表示为一维阵列时,如何使用matplotlib创建三维曲面打印?,python,numpy,matplotlib,surface,Python,Numpy,Matplotlib,Surface,我想从阵列x,y,z创建一个三维曲面图,其中len(x)和len(z)=250,len(y)=7 产生以下错误: ValueError: shape mismatch: objects cannot be broadcast to a single shape 我试过网格: T,U=np.meshgrid(x,b) surf = ax.plot_surface(T,U,y, cmap=cm.coolwarm, linewidth=0, antialiase
ValueError: shape mismatch: objects cannot be broadcast to a single shape
我试过网格:
T,U=np.meshgrid(x,b)
surf = ax.plot_surface(T,U,y, cmap=cm.coolwarm,
linewidth=0, antialiased=False)
但这产生了:
ValueError(“参数Z必须是二维的。”)
如果方向正确,我们将不胜感激。谢谢 您需要扩展数据,使每个数据点都有x和y。 这是通过组合
x
和y
以形成与z
形状相同的数组来实现的
您可以使用以下方法执行此操作:
所有点都由其在三维空间中的x、y和z值表示。当点没有y值时,它是一条线而不是一个点。有没有可能,你想要完成的是复制丢失的y值?我想是的。当我打印数组的形状时:x=(250,),y=(12,)z=(250,12),但它们都应该是(250,12),以便生成绘图?我不知道该怎么做。谢谢你的帮助。
T,U=np.meshgrid(x,b)
surf = ax.plot_surface(T,U,y, cmap=cm.coolwarm,
linewidth=0, antialiased=False)
import numpy as np
x = np.array([1, 2, 3])
y = np.array([5, 6, 7, 8])
z = np.random.rand(4, 3)
# make sure to take a look hat the keyword
# indexing : {‘xy’, ‘ij’} and check some (x,y,z) pairs
# to make sure that the values are correct
xv, yv = np.meshgrid(x, y)
print(xv)
print(yv)
print(xv.shape)
print(yv.shape)
print(z.shape)