我正在使用python图形库matplotlib来绘制报表中的几个图形,我发现自己需要在任意较小图形网格上方有几个固定计数图形。我四处搜索,但无法找到任何可以让我在一个matplotlib图上使用两个gridspec布局的东西。我真正想要的是:
我知道如果第二组中每行的图表数是偶数,我可能会破解某些解决方案。但如果每一行都有奇数,那么这种解决方案是不可能的。例如,假设我在小图形部分中每行有5个图形,那么就不可能在它们上面并排放置两个相同大小的图形,并且gridspec不允许您指定小数索引(并且它不应该是' T)。
在我看来,正确的解决方案是在单个图形上有两个单独的gridspec布局,一个用于上半部分的固定计数图形,然后是编程缩放的gridspec用于下半部分的较小图形。我在带有gridspec或子图的matplotlib中找不到这样的解决方案,那么有没有人对matplotlib这样的图形设置有任何建议?
答案 0 :(得分:6)
Matplotlib的matplotlib.gridspec
模块包含一个名为gridspec.GridSpecFromSubplotSpec
的类。与gridspec.GridSpec
类似,它采用nrow和ncols参数,允许您指定子图将占用/ span的单元格,但是它还需要SubplotSpec
对象,该对象可以是GridSpec
的单元格或单元格范围。 {1}}对象。返回的对象是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 | |
| | | | | |
| |---------------|
---------------------------------
当我获得足够的代表时,我会上传一张图片但是ASCII艺术应该至少能够理解。