我使用python图形库matplotlib来绘制报表中的几个东西,我发现自己需要在任意较小的图形网格上方有几个固定计数图形.我四处搜索,但无法找到任何可以让我在一个matplotlib图上使用两个gridspec布局的东西.我真正想要的是:

我知道如果第二组中每行的图形数是偶数,我可以破解一些解决方案.但如果每一行都有一个奇数,那么这种解决方案是不可能的.例如,假设我在小图形部分中每行有5个图形,那么就不可能在它们上面并排放置两个相同大小的图形,并且gridspec不允许您指定小数索引(并且它不应该) .
在我看来,正确的解决方案是在单个图形上有两个单独的gridspec布局,一个用于上半部分的固定计数图形,然后是编程缩放的gridspec用于下半部分的较小图形.我在使用gridspec或子图的matplotlib中找不到这样的解决方案,所以有人对使用matplotlib进行这样的图形设置有什么建议吗?
Matplotlib的matplotlib.gridspec模块包含一个名为的类gridspec.GridSpecFromSubplotSpec.例如gridspec.GridSpec,它需要nrow和ncols参数,这些参数允许您指定子图将占用/跨度的单元格,但是它还需要一个SubplotSpec对象,该对象可以是来自GridSpec对象的单元格或单元格跨度.返回的对象是一个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()
Run Code Online (Sandbox Code Playgroud)
这段代码的结果是:
---------------------------------
| |---------------|
| We didn't plot| | |other| |
| anything here.| |data |data | |
| | | | | |
| |---------------|
---------------------------------
Run Code Online (Sandbox Code Playgroud)
当我得到足够的代表时,我会上传一张图片但是ASCII艺术应该至少能够理解.