不同的返回类型归因于
squeeze关键字参数,默认情况下将
plt.subplots()其设置为关键字参数
True。让我们通过相应的包装来增强文档:
squeeze:布尔值,可选,默认值:True
如果为True,则从返回的Axes对象中挤出额外的尺寸:
- 如果仅构造一个子图(nrows = ncols = 1),则返回的单个Axes对象将作为标量返回。
fig, ax = plt.subplots()- 对于Nx1或1xN子图,返回的对象是一个1D numpy对象数组,其中Axes对象以numpy 1D数组形式返回。
fig, (ax1, ..., axN) = plt.subplots(nrows=N, ncols=1)(对于Nx1)fig, (ax1, ..., axN) = plt.subplots(nrows=1, ncols=N)(对于1xN)- 对于NxM,将N> 1和M> 1的子图作为2D数组返回。
fig, ((ax11, .., ax1M),..,(axN1, .., axNM)) = plt.subplots(nrows=N,ncols=M)- 如果为False,则完全不进行压缩:返回的Axes对象始终是包含Axes实例的2D数组,即使最终它是1x1。
fig, ((ax,),) = plt.subplots(nrows=1, ncols=1, squeeze=False)fig, ((ax,), .. ,(axN,)) = plt.subplots(nrows=N, ncols=1,squeeze=False)对于Nx1fig, ((ax, .. ,axN),) = plt.subplots(nrows=1, ncols=N,squeeze=False)对于1xNfig, ((ax11, .., ax1M),..,(axN1, .., axNM)) = plt.subplots(nrows=N,ncols=M)
或者,您可以始终使用解压后的版本
fig, ax_arr = plt.subplots(nrows=N, ncols=M, squeeze=False)
并索引数组以获得轴
ax_arr[1,2].plot(..)。
因此,对于2 x 3的网格,如果设置
squeeze为,则实际上并不重要
False。结果将始终是2D数组。您可以将其解压缩为
fig, ((ax1, ax2, ax3),(ax4, ax5, ax6)) = plt.subplots(nrows=2, ncols=3)
具有
ax{i}作为matplotlib轴对象,或者您可以使用打包版本
fig, ax_arr = plt.subplots(nrows=2, ncols=3)ax_arr[0,0].plot(..) # plot to first top left axesax_arr[1,2].plot(..) # plot to last bottom right axes
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)