Python 在单个matplotlib图形上嵌入多个gridspec布局?

Python 在单个matplotlib图形上嵌入多个gridspec布局?,python,matplotlib,Python,Matplotlib,我正在使用python图形库matplotlib在一个报告中绘制一些东西,我发现自己需要在一个由较小图形组成的任意网格上绘制几个固定计数的图形。我四处搜索,但找不到任何允许我在单个matplotlib图形上使用两个gridspec布局的内容。基本上我想要的是: 我知道如果第二组中每行的图形数是偶数,我可以找到一些解决方案。但如果每行都有一个奇数,那么这样的解决方案是不可能的。例如,假设我在“小图形”部分中每行有5个图形,那么不可能在它们上面并排有两个大小相等的图形,gridspec不允许您指定

我正在使用python图形库matplotlib在一个报告中绘制一些东西,我发现自己需要在一个由较小图形组成的任意网格上绘制几个固定计数的图形。我四处搜索,但找不到任何允许我在单个matplotlib图形上使用两个gridspec布局的内容。基本上我想要的是:

我知道如果第二组中每行的图形数是偶数,我可以找到一些解决方案。但如果每行都有一个奇数,那么这样的解决方案是不可能的。例如,假设我在“小图形”部分中每行有5个图形,那么不可能在它们上面并排有两个大小相等的图形,gridspec不允许您指定分数索引(而且它不应该)


在我看来,正确的解决方案是在单个图形上有两个独立的gridspec布局,一个用于上半部分的固定计数图形,然后一个用于下半部分较小图形的编程缩放gridspec。我在带有gridspec或子地块的matplotlib中没有找到这样的解决方案,那么有人对使用matplotlib设置这样的图形有什么建议吗?

matplotlib的
matplotlib.gridspec
模块包含一个名为
gridspec.GridSpecFromSubplotSpec
的类。与
gridspec.gridspec
类似,它采用nrow和ncols参数,允许您指定子批次将占用的单元格/span,但是它还需要
SubplotSpec
对象,该对象可以是
gridspec
对象的单元格或单元格span。返回的对象是一个
GridSpec
,它取决于用于创建它的
SubplotSpec
的单元格维度

示例:

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

outer_grid = gridspec.GridSpec(1,2) # gridspec with two adjacent horizontal cells
left_cell = outer_grid[0,1] # the left SubplotSpec within outer_grid

inner_grid = gridspec.GridSpecFromSubplotSpec(2,1, left_cell)

# From here we can plot usinginner_grid's SubplotSpecs
ax1 = plt.subplot(inner_grid[0,0])
ax2 = plt.subplot(inner_grid[1,0])

ax1.plot(data)
ax2.plot(other_data)

plt.show()
该代码的结果是:

---------------------------------
|               |---------------|
| We didn't plot| |     |other| |
| anything here.| |data |data | |
|               | |     |     | |
|               |---------------|
---------------------------------

这看起来像是我想要的!有点尴尬的是,我没有意识到文档中有什么内容,因为我很确定我以前看过那个页面。谢谢,我会把它拼起来作为我自己问题的答案。