如果想给自己和家人有尊严的生活,就请拼尽全力让自己变强。

目录

  • 前言
    •   1. 概述
    •   2. 版本
      •    2.1 山东青岛,2021年5月4日,Version 1
    •   3. 参考资料
  • 一、plt.legend(), axes.legend()和figure.legend()
  • 二、图例位置调整
  • 三、图例字体设置和边框设置
  • 总结

前言

  1. 概述

  (1) 给matplotlib绘制的图添加图例。
  (2) 掌握常见的图例细节调整方法。

  2. 版本

   2.1 山东青岛,2021年5月4日,Version 1

  3. 参考资料

[1]. matplotlib官方文档
[2]. Python——legend()图例位置调整


一、plt.legend(), axes.legend()和figure.legend()

  • plt.legend()的是给当前的图形对象添加图例
  • axes.legend()是给已经明确的axes子图对象添加图例, 在能明确操作的图形对象时建议直接使用Axes.legend()。
  • figure.legend()是对当前的figure对象添加图例,需要注意的是一个figure对象可能包括多个Axes的子对象,因此figure.legend()是给多个Axes添加共同的图例时使用的。
  • 代码示例:
'''
1. 程序目的(1) matplotlib制图时添加图例2. 山东青岛  2021年5月4日
'''# 1. 包的导入
import matplotlib.pyplot as plt# 2. 绘图
figure = plt.figure(figsize=(9,3))plt.subplot(131)
line_up, = plt.plot([1,2,3],label='Line 2') # 逗号不能丢掉,为什么?
line_down, = plt.plot([3,2,1],label='Line 1')# 添加图例
plt.legend(handles=[line_up,line_down]) # 此时用的是制图时label的标签axes = plt.subplot(132)
line_up, = plt.plot([1,2,3],label='Line 2') # 逗号不能丢掉,为什么?
line_down, = plt.plot([3,2,1],label='Line 1')# 添加图例,重新命名图例名称
axes.legend([line_up,line_down],['Line Up','Line Down'],loc='lower center')axes_2 = plt.subplot(133)
line_up, = plt.plot([1,2,3],label='Line 2') # 逗号不能丢掉,为什么?
line_down, = plt.plot([3,2,1],label='Line 1')# 给三个Axes子图形对象添加共同的图例,重新命名图例名称
figure.legend([line_up,line_down],['Line Up Fig','Line Down Fig'],loc='upper center')plt.show()
  • 制图结果

二、图例位置调整

  1. ~.legend(loc=‘String’ or Number, bbox_to_anchor=(num1,num2)) 可以满足图例位置的基本调整需求,~figure, Axes或者plt等可以添加图例的对象。

   (1)loc的参数设置可以参考以下表格:

String Number
upper right 1
upper left 2
lower left 3
lower right 4
right 5
center left 6
center right 7
ower center 8
upper center 9
center 10

   (2)bbox_to_anchor用于图例位置的微调,在基于loc调整完图例的基本位置后,bbox_to_anchor参数中的num1控制图例的左右移动,值越大越向右边移动,num2用于控制图例的上下移动,值越大,越向上移动。

  • 图例位置调整代码示例
'''
1. 程序目的(1) 图例位置调整2. 山东青岛  2021年5月5日'''# 1. 包的导入
import numpy as np
import matplotlib.pyplot as plt# 2. 制图数据创建
z = np.random.randn(10)
#print(z)# 3. 绘图figure = plt.figure(figsize=(10,5))axes_1 = figure.add_subplot(121)red_dot, = plt.plot(z,'ro',markersize=15)# 3.1 给其中部分数据添加十字交叉
white_cross, = plt.plot(z[:5],'w+',markeredgewidth=3,markersize=15)# 3.2 给其中一个Axes对象添加图例,并调整图例位置
axes_1.legend([red_dot,(red_dot,white_cross)],['Red A','Red A+B'],ncol = 1,loc = 'upper right',bbox_to_anchor=(1,0.9))axes_2 = figure.add_subplot(122)blue_dot, = plt.plot(z,'bo',markersize=15)white_cross, = plt.plot(z[:5],'w+',markeredgewidth=3,markersize=15)# 3.3 给整个figure对象添加图例,并调整图例位置
figure.legend([red_dot,(red_dot,white_cross),blue_dot,(blue_dot,white_cross)],['red A','red A+B','blue A','blue A+B'],ncol = 4,loc = 'upper center',#bbox_to_anchor=(0.5,0.9))plt.show()
  • 程序运行结果:

三、图例字体设置和边框设置

  • ~.legend()中的prop参数可以用于对图例的字体属性进行设置,其接受字典类型的变量。
  • 对于图例边框常见的操作如下:
    • frameon = False去除图例边框
    • facecolor = ‘orange’ 设置边框填充色为橙色
    • edgecolor = ‘blue’ 设置图例边框的颜色为蓝色
  • 代码示例:
'''
1. 程序目的(1) 增加图名和坐标轴名称2. 山东青岛  2021年5月2日
'''# 0. 包的导入
import numpy as np
import matplotlib.pyplot as plt# 1. 创建制图数据
x = np.linspace(-1,1,100)# 2. 绘图# 2.1 图形对象创建
fig,axes = plt.subplots(figsize=(5,5)) # 创建一个图形对象和一个子图对象
axes.plot(x,x**3,label='cubic',linestyle='--') # axes对象绘图
axes.plot(x,x**2,label='square',linestyle=':') # axes对象绘图# 2.2 axes对象添加图名称,坐标轴名称
axes.set_xlabel('x label',fontsize=14)
axes.set_ylabel('y label',fontsize=14)
axes.set_title('$X^{a}$',fontsize=16)# 2.3 添加图例,修饰图例# 用于设置图例字体
font_legend = {'family': 'Times New Roman','weight': 'normal','size': 14,}
axes.legend(loc = 'lower right', # 图例位置#frameon = False, # 去除图例边框facecolor = 'orange',edgecolor = 'blue', # 设置边框颜色,边框设置为白色则和无边框效果相似prop = font_legend # 通过prop设置字体属性
) # 添加图例plt.show()
  • 运行结果:


总结

  1. plt.legend()axes.legend() 可以用于给当前的axes子图对象添加添加图例, figure.legend() 可以用于给当前的figure图形对象添加图例。
  2. ~.legend(loc=‘String’ or Number, bbox_to_anchor=(num1,num2)) 可以满足图例位置的基本调整需求,~figure, Axes或者plt等可以添加图例的对象。
  3. ~.legend()中的prop参数可以用于对图例的字体属性进行设置,其接受字典类型的变量。
  4. 对于图例边框常见的操作如下:
    • frameon = False去除图例边框
    • facecolor = ‘orange’ 设置边框填充色为橙色
    • edgecolor = ‘blue’ 设置图例边框的颜色为蓝色

Python-matplotlib制图05-添加图例和图例的细节调整相关推荐

  1. python可视化添加文本_python Matplotlib基础--如何添加文本和标注

    创建一个优秀的可视化图表的关键在于引导读者,让他们能理解图表所讲述的故事.在一些情况下,这个故事可以通过纯图像的方式表达,不需要额外添加文字,但是在另外一些情况中,图表需要文字的提示和标签才能将故事讲 ...

  2. matlab 添加子图图案,matplotlib给子图添加图例的方法

    matplotlib给子图添加图例的方法 代码如下: import matplotlib.pyplot as plt x = [1,2,3,4,5,6,7,8] y = [5,2,4,2,1,4,5, ...

  3. Python Matplotlib数据可视化绘图之(六)————图片大小、颜色、标题、纵横坐标、画布和绘图区域背景颜色、Legend(图例)等的参数设置详解

    文章目录 前言 一.图片大小的设定和调节 1. 三种调整matplotlib图片大小的方法 1.1 plt.figure(figsize=(n, n)) 1.1.1 代码如下: 1.1.2 输出结果如 ...

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

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

  5. 如何为py图表添加坐标轴/标题/图例等辅助元素

    本博文源于<python数据可视化>(黑马程序员编著)旨在讲解如何使用python对画出的图表定制出坐标轴.标题.图例.网格.参考线.参考区域.注释文本和表格. 文章目录 1.设置坐标轴标 ...

  6. Python matplotlib可视化:用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的外侧顶部)

    Python matplotlib可视化:用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的外侧顶部) 目录

  7. Python matplotlib可视化:用Matplotlib的bar_label函数自定义条形图的数值标签、用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的中部)

    Python matplotlib可视化:用Matplotlib的bar_label函数自定义条形图的数值标签.用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的中部) ...

  8. Matplotlib 多个子图使用一个图例

    Matplotlib 多个子图使用一个图例 情况1:所有的子图图例相同 import matplotlib.pyplot as pltfig = plt.figure() axes = fig.sub ...

  9. python如何为饼图添加标题_python – Matplotlib子图标题,图标题格式

    我将如何格式化下面的饼图子图,以便在图标题和子图标题之间有更多的空白区域.理想情况下,子图标题也会更接近实际的饼图本身. 我似乎无法在文档中找到任何可能启用此功能的内容,但我是matplotlib的新 ...

最新文章

  1. python3 字符串格式化
  2. Spring Security系列教程解决Spring Security环境中的跨域问题
  3. PHP 学习 一 基础
  4. python 分班_小白如何学习python
  5. tcpdump抓包实例
  6. 悲观锁和乐观锁_悲观锁和乐观锁处理并发操作
  7. dbeaver 数据转化 mapping_Python机器学习实例:数据竞赛-足球运动员身价估计
  8. UE4 Slate概述
  9. MyBatis获取参数值的两种方式以及传参情况
  10. python可视化入门 plotly
  11. Java实现十大排序算法
  12. 麒麟操作系统激活相关问题
  13. ThinkPHP5零食商城系统(前后台)
  14. 修改文件 火车票买下铺_12306修改代码买下铺?12306码农太弱了吧 (转载)
  15. 极值点、驻点、拐点的区别和联系
  16. 阿里云-对象存储OSS成本优化
  17. NCCL (NVIDIA Collective Communications Library)
  18. Information and Influence Propagation in Social Networks学习笔记
  19. [nn.Parameter]理解总结与初始化方法大全
  20. 万字干货:教新手从0到1搭建完整的增长数据体系

热门文章

  1. 已经过了试用期后被辞退要如何补偿
  2. rviz可视化PCL点云时显示颜色
  3. 交流等效电路的画法口诀(简易)
  4. 每日一练(day6)
  5. 一文带你看懂Traefik
  6. python读取arff文件_ARFF文件格式
  7. PTA 1041 考试座位号 (c语言)
  8. 零售科技进阶侧写:沃尔玛与亚马逊的2019
  9. 关于三角函数,反三角函数的详细解释
  10. VUE前端,小程序,APP签名盖章