matplotlib subplot 多图合一

1:第一种方法

# method1: subplot2grid
    #################
    '''
    第一个参数(3, 3) 是把图分成3行3列
    第二个参数是位置 (0, 0)表示从0行0列开始
    第三个参数  colspan=3  表示列占3列 ,
    第四个参数 rowspan=1  表示行占一行

    '''
    plt.figure()
    ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=3, rowspan=1)
    ax1.plot([1, 2], [1, 2])
    ax1.set_title('al1_title')
    ax2 = plt.subplot2grid((3, 3), (1, 0), colspan=2,)
    ax3 = plt.subplot2grid((3, 3), (1, 2), rowspan=2)
    ax4 = plt.subplot2grid((3, 3), (2, 0))
    ax5 = plt.subplot2grid((3, 3), (2, 1))

    plt.savefig('./image_dir/grid1.png')
    plt.show()

2: 第二种方法:

    import matplotlib.pyplot as plt
    import matplotlib.gridspec as gridspec

    plt.figure()
    gs = gridspec.GridSpec(3, 3)
    ax1 = plt.subplot(gs[0, :])
    ax2 = plt.subplot(gs[1, :2])
    ax3 = plt.subplot(gs[1:, 2])
    ax4 = plt.subplot(gs[-1, 0])
    ax5 = plt.subplot(gs[-1, -2])

    plt.savefig('./image_dir/grid2.png')
    plt.show()

 

3: 第三种方法

    # method4
    plt.figure()
    plt.subplot(2, 2, 1)
    plt.plot([0, 1], [0, 1])
    plt.subplot(222)
    plt.plot([0, 1], [0, 2])
    plt.subplot(223)
    plt.plot([0, 1], [0, 3])
    plt.subplot(224)
    plt.plot([0, 1], [0, 4])
    plt.savefig('./image_dir/grid4.png')
    plt.tight_layout()
    plt.show()

4: 第四种

 # method 3 : easy to define structure
    f, ((ax11, ax12), (ax21, ax22)) = plt.subplots(2, 2, sharex=True, sharey=True)
    ax11.scatter([1, 2], [1, 2])
    plt.savefig('./image_dir/grid3.png')
    plt.tight_layout()
    plt.show()

 

 

 

posted @ 2020-01-12 17:45  岑夫子  阅读(823)  评论(0编辑  收藏  举报