1. 简单布局

  1. 简单布局通过Figure.add_subplot(*args,**kwargs)方法来完成,它返回的是Axes实例。当然你也可以通过pyplot.subplot(*args,**kwargs)函数来完成,他返回的也是Axes实例,该函数只是一个便利函数。

SubPlot类是Axes类的子类。因此SubPlot对象也是Axes对象。

  1. 最典型用法是matplotlib.pyplot.subplot(nrows,ncols,plot_number)nrowsncols将图表划分成nrows*ncols大小的网格区域,每一个区域都能存放一个SubPlot;该函数创建plot_number位置处的SubPlot-axes。其中plot_number起始于1,最大值为nrows*ncols

    如果nrowsncolsplot_number都是个位数,则你可以指定一个三位数来简化函数调用matplotlib.pyplot.subplot(integer),其中百分位代表nrows,十分位代表ncols,各位代表plot_number

  2. add_subplot其他的参数:

    • axisbg关键字参数:指定subplot的背景色
    • polar关键字参数:指定subplot是否是极坐标。默认为False
    • projection:指定坐标方式,可以为:'aitoff''hammer''lambert''mollweide''polar''rectilinear'。当projection='polar'等价于ploar=True
    • sharex关键字参数:指定subplot与其他Axes(由该参数值指定)共享xaxis attribute
    • sharey关键字参数:指定subplot是否与其他Axes(由该参数值指定)共享yaxis attribute
  3. 你可以通过pyplot.subplots()函数一次性的创建多个SubPlot

    pyplot.subplot()每次只会创建一个SubPlot

    pyplot.subplots

    其参数有:

    • nrows:行数,默认为1

    • ncols:列数,默认为1

    • sharex

      • 如果为True,则所有SubPlotX axis被共享。此时只有最后一行的X轴可见。
      • 如果为False,则SubPlotX axis不共享,每一个SbuPlotX轴可见。
      • 如果为字符串all,则等效于True
      • 如果为字符串none,则当小于False
      • 如果为字符串row,则每一行的SubPlot共享一个X轴(与False等效)
      • 如果为字符串col,则每一列的SubPlot共享一个X轴(与True等效)

      pyplot.subplots(sharex=True)

      pyplot.subplots(sharex='row')

      pyplot.subplots(sharex='col')

    • sharey

      • 如果为True,则所有SubPlotY axis被共享。此时只有第一列的Y轴可见。
      • 如果为False,则SubPlotY axis不共享,每一个SbuPlotY轴可见。
      • 如果为字符串all,则等效于True
      • 如果为字符串none,则当小于False
      • 如果为字符串row,则每一行的SubPlot共享一个Y轴(与True等效)
      • 如果为字符串col,则每一列的SubPlot共享一个Y轴(与False等效)
    • squeeze

      • 如果为True

        • 如果只创建了一个SubPlot,则返回一个变量(创建的SubPlot对象)
        • 如果创建了N*1或者1*NSubPlot,则返回一个1维向量
        • 如果创建了N*MSubPlot(其中N>1,M>1),则返回一个2维向量
      • 如果为False则始终返回一个2维向量
    • subplot_kw:一个字典参数,用于传递给Axes.add_subplot()来创建SubPlot

    • gridspec_kw:一个字典参数,用于传递给GridSpec构造函数来创建SubPlot存放的网格

    • fig_kw:一个字典参数,用于传递给pyplot.figure()函数。所有前述未能识别的感激案子参数都会传到这里。

    其返回值为figure,ax。其中figure是一个Figure对象;ax取决于squeeze参数。