免责声明:我一般都没有经验使用matplotlib和python。
以下是我试图制作的图:
使用GridSpec
可以很好地布置图,但是当我尝试在每行的右边包含一个颜色条时,它会改变相应子图的大小。这似乎是GridSpec
众所周知且不可避免的问题。所以根据这个问题的建议:Matplotlib 2 Subplots, 1 Colorbar
我决定使用ImageGrid
重拍整个情节。不幸的是documentation只列出了选项cbar_mode=[None|single|each]
,而我想要每行1个colobar。有没有办法在单个ImageGrid
内执行此操作?或者我是否必须制作2个网格并处理对齐的噩梦。
底部的第五个情节怎么样?有没有办法以某种方式将其包含在图像网格中?
我能看到这个工作的唯一方法是以两个ImageGrid
的形式将GridSpec
嵌入1x3列的{{1}}中。这似乎过于复杂和困难,所以我不想构建那个脚本,直到我知道它正确的方式。
感谢您提供任何帮助/建议!
答案 0 :(得分:2)
好的我明白了。似乎ImageGrid
在其中以某种方式使用subplot
。所以我能够使用
TopGrid = ImageGrid( fig, 311,
nrows_ncols=(1,2),
axes_pad=0,
share_all=True,
cbar_location="right",
cbar_mode="single",
cbar_size="3%",
cbar_pad=0.0,
cbar_set_cax=True
)
<Plotting commands for the top row of plots and colorbar>
BotGrid = ImageGrid( fig, 312,
nrows_ncols=(1,2),
axes_pad=0,
share_all=True,
cbar_location="right",
cbar_mode="single",
cbar_size="3%",
cbar_pad=0.0,
)
<Plotting commands for bottom row . . .>
StemPlot = plt.subplot(313)
<plotting commands for bottom stem plot>
编辑:颜色图中的空白是有意的,而不是添加颜色栏的一些神器