我试图在一个图中生成三个图,每个图都是一个三维曲面图。而我正在尝试生成一个列表,它将它们保持在与图中位置相对应的索引位置(这将是直观的)。
但是,当我创建一个子图数组并单独引用每个子图时,这些图并没有按照我期望的方式排序。下面是一个例子 - 我假设这些图应标记为0,1,2(但它们标记为1,2,0)。
提前感谢您的帮助。
从Axes3D.plot_surface
帮助(here)修改:
fig = plt.figure(figsize = plt.figaspect(0.333))
ax = [fig.add_subplot(1, 3, x, projection = '3d') for x in range(3)]
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
for i in range(3):
ax[i].plot_surface(X, Y, Z, rstride=1, cstride=1,
linewidth=0, antialiased=False)
ax[i].set_zlim(-1.01, 1.01)
ax[i].set_title("Plot " +str(i))
plt.show()
答案 0 :(得分:1)
add_subplot
接受参数nrows
,ncols
和plot_number,其中plot_number应从1开始,而不是零。有关详情,请参阅docs here。
因此,请将您更改为:
ax = [fig.add_subplot(1, 3, x+1, projection = '3d') for x in range(3)]
(请注意x+1
代替x
),所有内容都应该正常