【发布时间】:2022-01-02 00:52:09
【问题描述】:
我正在绘制从np.meshgrid 获得的 python 中的两个曲面图,我想附加它们以仅创建一个曲面图。例如:
fig = plt.figure(figsize=(8,4))
ax = fig.add_subplot(projection='3d')
# First surface:
x1 = np.linspace(0,1,100)
y1 = np.linspace(0,1,100)
X1,Y1 = np.meshgrid(x1,y1)
Z1 = 2*Y1
solid = ax.plot_surface(X1,Y1,Z1,cmap=cm.coolwarm,linewidth=0, antialiased=True)
# Second surface:
x2 = np.linspace(0,1,100)
y2 = np.linspace(1,2,100)
X2,Y2 = np.meshgrid(x2,y2)
Z2 = 2*Y2
solid = ax.plot_surface(X2,Y2,Z2,cmap=cm.coolwarm,linewidth=0, antialiased=True)
我的第一个想法是在它们后面加上np.append,这样:
X = np.append(X1,X2)
Y = np.append(Y1,Y2)
Z = np.append(Z1,Z2)
solid = ax.plot_surface(X,Y,Z,cmap=cm.coolwarm,linewidth=0, antialiased=True)
但正如预期的那样,由于 Z 被展平,我得到了一个错误,此外,我不确定 X 和 Y 是否正确。在上面的示例中,我如何只创建一个曲面很简单,因为它们都具有相同的角度,但我想解决它们可能具有不同倾角的一般情况。我该如何克服这个问题?提前谢谢!
【问题讨论】:
-
np.append是np.concatenate的封面。正如文档告诉你的那样,当没有指定轴时,它会使输入变平。append仅适用于为一维数组添加一个数字。对于其他任何事情,请学习使用concatenate。
标签: python arrays numpy matplotlib multidimensional-array