我正在使用 python 图形库 matplotlib 来绘制报告中的几项内容,我发现自己需要在较小图形的任意网格上方有几个固定计数的图形。我四处搜索,但找不到任何可以让我在单个 matplotlib 图上使用两个 gridspec 布局的东西。我本质上想要的是:
我知道如果第二组中每行的图形数量是偶数,我可以破解一些解决方案。但如果每一行都有奇数个数,那么这样的解决方案是不可能的。例如,假设我在小图形部分中每行有 5 个图形,那么不可能在它们上方并排放置两个相同大小的图形,并且 gridspec 不允许您指定分数索引(也不应该) 。
在我看来,正确的解决方案是在单个图形上有两个单独的 gridspec 布局,一个用于上半部分的固定计数图形,然后是一个以编程方式缩放的 gridspec 用于下半部分的较小图形。我在带有 gridspec 或子图的 matplotlib 中没有找到这样的解决方案,那么有人对使用 matplotlib 进行此类图形设置有任何建议吗?
Matplotlib 的matplotlib.gridspec
模块包含一个名为的类gridspec.GridSpecFromSubplotSpec
. Like gridspec.GridSpec
,它需要 nrow 和 ncols 参数,允许您指定子图将占用/跨度的单元格,但是它还需要SubplotSpec
对象,可以是单元格或单元格跨度GridSpec
目的。返回的对象是一个GridSpec
这取决于电池的尺寸SubplotSpec
这是用来创建它的。
Example:
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 | |
| | | | | |
| |---------------|
---------------------------------
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)