按照绘制顺序生成子图列表。

2024-04-19 07:46:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一个图形中生成三个图形,每个图形都是一个三维曲面图。我正在尝试生成一个列表,将它们保存在一个索引位置,对应于它们在图形上的位置(这将是直观的)。在

但是,当我创建一个子批次数组并分别引用每个子批次时,这些图的顺序并不像我预期的那样。下面是一个例子-我假设这些图应该被标记为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()

Tags: in标记图形列表forplotnpfig
1条回答
网友
1楼 · 发布于 2024-04-19 07:46:09

add_subplot接受参数nrowsncols和绘图编号,其中绘图编号应该从1开始,而不是零。更多信息请参见docs here。在

所以,把你的行改成:

ax = [fig.add_subplot(1, 3, x+1, projection = '3d') for x in range(3)]

(注意x+1代替了x),所有的都应该可以解决

相关问题 更多 >