首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子图中的子图-两个8x8子图

子图中的子图-两个8x8子图
EN

Stack Overflow用户
提问于 2017-10-24 04:26:26
回答 1查看 4.5K关注 0票数 3

我试图在两个子图中创建子图,以显示不同大小的图像。

主图将被分成两幅--每一幅都将被进一步划分为8x8个子图。我不想要任何斧头。

因此,我将有两个子图,每个显示64幅图像(64个子图)。

我似乎需要使用gridspec,但我不知道如何将axes.flatten与gridspec结合使用。axes.flatten允许我在一个图形上显示64幅图像。

代码语言:javascript
复制
gs0 = gridspec.GridSpec(1, 2)

gs00 = gridspec.GridSpecFromSubplotSpec(8, 8, subplot_spec=gs0[0])
gs01 = gridspec.GridSpecFromSubplotSpec(8, 8, subplot_spec=gs0[1])

我不知道如何将下面的代码与gridspec结合起来,以创建子图。

代码语言:javascript
复制
fig, axes = plt.subplots(nrows=8, ncols=8,figsize = (12,6))

  for ax,image in zip(axes.flat,images):
            ax.axes.set_axis_off()
            ax.imshow(imread(image))
plt.show()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-24 05:33:23

简而言之:你不会

pyplot.subplots是一个顶层函数,其主要目的是方便.

为了满足您的需要,您将不得不深入到API中去,但不是太多。

代码语言:javascript
复制
from matplotlib import pyplot
from matplotlib import gridspec

fig = pyplot.figure(figsize=(24, 12))

gs0 = gridspec.GridSpec(1, 2)
gs00 = gridspec.GridSpecFromSubplotSpec(8, 8, subplot_spec=gs0[0])
gs01 = gridspec.GridSpecFromSubplotSpec(8, 8, subplot_spec=gs0[1])

for i in range(8):
    for j in range(8):
        ax00 = fig.add_subplot(gs00[i, j])
        ax00.text(0.5, 0.5, '0_{}_{}'.format(i, j), ha='center')
        ax00.set_xticks([])
        ax00.set_yticks([])

        ax01 = fig.add_subplot(gs01[i, j])
        ax01.text(0.5, 0.5, '1_{}_{}'.format(i, j), ha='center')
        ax01.set_xticks([])
        ax01.set_yticks([])

请注意,如果您正在绘制大量图像,axes_grid1工具包可能会很有用:

grid.html#sphx-glr-tutorials-toolkits-axes-grid-py

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46902190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档