Matplotlib 多个子图使用一个图例

情况1:所有的子图图例相同

import matplotlib.pyplot as pltfig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)for ax in fig.axes:ax.plot([0, 10], [0, 10], label='linear')lines, labels = fig.axes[-1].get_legend_handles_labels()
fig.legend(lines, labels, loc = 'upper center') # 图例的位置,bbox_to_anchor=(0.5, 0.92),
plt.show()

情况2:所有的子图图例不同

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0, 10, 501)fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)
axes[0, 0].plot(x,np.sin(x),color = 'k',label="sin(x)")
axes[0, 1].plot(x,np.cos(x),color = 'b',label="cos(x)")
axes[1, 0].plot(x,np.sin(x) + np.cos(x),color = 'r',label="sin(x)+cos(x)")
axes[1, 1].plot(x,np.sin(x) - np.cos(x),color = 'm',label="sin(x)-cos(x)")lines = []
labels = []
for ax in fig.axes:axLine, axLabel = ax.get_legend_handles_labels()lines.extend(axLine)labels.extend(axLabel)fig.legend(lines, labels,           loc = 'upper right')  # 图例的位置,bbox_to_anchor=(0.5, 0.92),
plt.show()

情况3:子图图例不完全相同

import matplotlib.pyplot as pltfig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)for ax in fig.axes:ax.plot([0, 10], [0, 10], label='linear')lines = []
labels = []
lines_01, labels_01 = fig.axes[2].get_legend_handles_labels()
lines.extend(lines_01); labels.extend(labels_01)
lines_02, labels_02 = fig.axes[3].get_legend_handles_labels()
lines.extend(lines_02); labels.extend(labels_02)
lines_03, labels_03 = fig.axes[-1].get_legend_handles_labels()
lines.extend(lines_03); labels.extend(labels_03)fig.legend(lines, labels, loc = 'upper center')  # 图例的位置,bbox_to_anchor=(0.5, 0.92),
plt.show()

部分代码参考 https://www.delftstack.com/zh/howto/matplotlib/how-to-make-a-single-legend-for-all-subplots-in-matplotlib/

Matplotlib 多个子图使用一个图例相关推荐

  1. 【漫漫科研路\pgfplots】多个子图共用一个图例

    十月底,投完会议之后,便对科研写作方面遇到的问题进行了探索.问题主要有: 问题: 文献管理问题:在写论文的过程中,经常要引用他人文献,这时需要费时去寻找.另一方面,有时想要查看曾经读到的某篇文章提到的 ...

  2. python使用matplotlib可视化subplots子图、为subplots添加主标题(main title)、为subplots的每一个子图添加子图标题(subplots title)

    python使用matplotlib可视化subplots子图.为subplots添加主标题(main title).为subplots的每一个子图添加子图标题(subplots title) 目录

  3. Matplotlib 中文用户指南 3.6 图例指南

    图例指南 原文:Legend guide 译者:飞龙 协议:CC BY-NC-SA 4.0 此图例指南是legend()中可用文档的扩展 - 请在继续阅读本指南之前确保你熟悉该文档(见篇尾)的内容. ...

  4. 【科研分享】Matplotlib 绘制多子图(subplot)进行实验结果分析

    Matplotlib 绘制多子图(subplot)进行实验结果分析   本文主要总结于本人近期的科研经历,在最后撰写论文试验分析的时候曾经被导师要求绘制一幅2*8的16子图的超参数分析结果图.所以踩了 ...

  5. matplotlib嵌套南海子图

    matplotlib嵌套南海子图 二维可视化的最高境界是可以控制每一个像素的每一个通道.--我瞎说的 简介 目前大多数教程中用matplotlib在中国地图右下角嵌套南海子图主要方案是通过fig.ad ...

  6. python使用matplotlib可视化subplots子图、subplots绘制子图、子图之间有重叠问题、使用subplots_adjust函数合理设置子图之间的水平和垂直距离

    python使用matplotlib可视化subplots子图.subplots绘制子图.子图之间有重叠问题.使用subplots_adjust函数合理设置子图之间的水平和垂直距离(vertical/ ...

  7. Python seaborn可视化:组合多个seaborn可视化结果并使得组合结果图像共享X轴、使用matplotlib的subplots子图函数的gridspec_kw参数指定子图的相对大小或者比率

    Python seaborn可视化:组合多个seaborn可视化结果并使得组合结果图像共享X轴.使用matplotlib的subplots子图函数的gridspec_kw参数指定子图的相对大小或者比率 ...

  8. 不会用matplotlib画多子图?收好这2个套路

    如果你还不会用matplotlib画多子图,看这篇小短文就对了.看完后,你会明白多子图是怎么来的,然后收好文中两个模板(套路),它们能解决你大部分的需求.在你用matplotlib作图是思路清晰,信手 ...

  9. echarts图表设置关于图例legend,限制图例可点击时最少保留显示一个图例

    echarts图表设置关于图例legend,限制图例可点击时最少保留显示一个图例 echarts图表设置关于图例legend,限制图例可点击时最少保留显示一个图例,亲测有效: 代码如下: // 初始化 ...

最新文章

  1. led伏安特性实验误差分析_检测实验室误差分析知识汇编
  2. ReentrantLock和Condition理解及应用
  3. SQL Server - select语句练习
  4. 谷歌体三维捕捉新突破:实现后期任意照明修改
  5. (24)2-9-9-12分页(上)
  6. apt包管理 Android,apt软件包管理学习(示例代码)
  7. POJ 计算几何专项训练(1) 【2318】【2398】【3304】【2653】【1556】【1066】...
  8. 数据结构小总结(成都磨子桥技工学校数据结构前12题)
  9. 没学过编程能学python吗_我没学过编程,能否学会Python?
  10. 2020年Q3美妆行业抖音小红书营销报告
  11. 拓端tecdat|R语言贝叶斯MCMC:用rstan建立线性回归模型分析汽车数据和可视化诊断
  12. 锋利jquery第三章案例 总结
  13. Java检验yyyymm合法,JAVA日期格式校验正则表达式方法,yyyy年MM月,yyyy-MM-dd格式等...
  14. 【Apollo 6.0项目实战】Canbus模块
  15. WebDAV之葫芦儿·派盘+Solid Explorer = 全能 Android 文件管理器
  16. veu 中 nprogress 的 使用方法
  17. 行业标准 | 证券期货经营机构信息系统备份能力标准 JR/T 0059—2010
  18. 三维空间刚体变换:欧拉角、旋转向量、四元数
  19. 改变this指向的方法
  20. input框只能输入非负数

热门文章

  1. QT 如何计算中英文字符串的长度
  2. html怎么吧图片设置成背景音乐,如何把照片做成视频并添加音乐
  3. 芯片之家精选文章合集 (二):收藏起来慢慢看
  4. 多分类学习:OvO、OvR、ECOC
  5. word打开文件出错怎么办?
  6. H5时代的多行文本框
  7. 安卓电子市场_五款安卓工具神器
  8. 文本分割之垂直投影法基于OpenCV(python)的实现
  9. SpringBoot整合阿里云短信服务详细过程(保证初学者也能实现)
  10. 初学者必须要知道的FPGA基础知识