欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Matplotlib多子图显示1——subplot

程序员文章站 2022-03-21 17:41:50
...

原文地址

分类目录——Matplotlib

  • 先观察结果

    [外链图片转存中…(img-htPlTN2i-1582336140253)]

  • 导入支持包

    import matplotlib.pyplot as plt
    
  • 子图布局写法1

    # 写法一plt.subplot(r,c,index)
    # r     将画布分成r行
    # c     将画布分成c列
    # index 将画布分成r行c列,此次画图所在区块的索引
    
    plt.subplot(2,2,1)
    plt.plot([0,1],[0,1])
    
    plt.subplot(2,2,2)
    plt.plot([0,1],[0,2])
    
  • 子图布局写法2

    # 写法二plt.subplot(r,c,index)
    # 效果同上,只是不加逗号
    
    plt.subplot(223)
    plt.plot([0,1],[0,3])
    
    plt.subplot(224, title='224')
    plt.plot([0,1],[0,4])
    
  • 如果 此时出图的话

    # plt.tight_layout()
    # plt.show()
    

    出图如文首所示

  • 如果再继续这样写的话

    # 此时如果这样写会怎么样
    plt.subplot(211, title='211')    # 将画布分成两行一列,这次画图放在第一部分
    plt.plot([0,1],[0,4])
    
  • 出图

    # 加上这一句可以避免不同子图的边缘重叠(在有label,title时可能会发生)
    plt.tight_layout()
    
    plt.show()  # 展示
    

    出图如下

    [外链图片转存中…(img-XFSMo5YE-1582336140255)]

    发现它会把之前的画图覆盖——如果最近/最新的subplot设定与之前的重复,之前的将不再显示——就近原则

    一个subplot设定只对当前plot有效,(211)应当理解为把划分分成2行1列 的 话,这个subplot放在第一份

  • 说明

    按顺序复制程序即可执行

  • 参考文献

    代码主要出自 Subplot 多合一显示,略有改动

相关标签: Python # Matplotlib