了解matplotlib.subplots python

了解matplotlib.subplots python,第1张

了解matplotlib.subplots python

不同的返回类型归因于

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)
      对于Nx1
      fig, ((ax, .. ,axN),) = plt.subplots(nrows=1, ncols=N,squeeze=False)
      对于1xN
      fig, ((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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5647681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存