关于Matplotlib add_subplot()索引机制的技术问询
Matplotlib add_subplot() 索引机制详解
参数核心含义
add_subplot(nrows, ncols, index) 三个参数的作用明确:
nrows:将整个画布划分为指定行数ncols:将整个画布划分为指定列数index:子图在划分出的网格中的位置序号,从1开始,按行优先顺序排列(先填满第一行的所有列,再依次进入下一行)
关键行为逻辑
每次调用add_subplot时,都是基于整个画布的尺寸重新划分网格,而非在剩余空间中添加子图。这也是你之前代码布局混乱的核心原因:
add_subplot(2, 2, 1):把画布分成2行2列,取第一行第一列的位置add_subplot(3, 2, 2):重新把整个画布分成3行2列,取第一行第二列的位置,该子图会覆盖画布对应区域的原有内容add_subplot(3, 1, 3):再次将画布分成3行1列,取第三行整行的位置add_subplot(3, 2, 4):又把画布分成3行2列,取第二行第二列的位置
与subplot_mosaic的差异
subplot_mosaic是先定义整体布局结构,Matplotlib自动计算每个子图的位置与尺寸;而add_subplot每次独立基于全画布划分网格,无法直接实现跨行列的复杂布局,除非使用add_subplot(3,2,(1,2))这种合并单元格的写法(但依然基于统一的网格划分逻辑)
内容的提问来源于stack exchange,提问作者Linus Kubu
相关产品推荐
相关产品推荐

