legend 是放置在我们的坐标边界里面的一个东西,主要的作用就是解释一下我们坐标轴里面的图形的含义(比如说针对x, y 对应的函数表达式,或者是曲线的意义(函数表达式)),legend 在英语里面的含义就是图示的说明。就是我们下面那个小盒子里面的三个函数的注释说明,表明每个函数是什么样的曲线等等。
当然也可以说其他,比如说一个图里面,有几个柱状图,分别表示男生,女生,这个说明我们就用legend 来表示。

可以在plt.legend 里面使用 loc 这个参数来设置我们的摆放的位置。

e.g. loc=“upper right”, 就放置在我们的边界盒子(bounding box)(注释:就是坐标轴的边界)里面的右上方 ,默认的设置就是坐标轴边界的设置 (0,0)(1,1)
注解边界的默认设置就是(x0,y0,width,height)=(0,0,1,1).

为了把这个legend 放置在我们的坐标轴边界的外部,我们,我们需要借助一个特殊的元祖(x0,y0),比如说放置在坐标轴边界的右下部。

最常用的方法就是下面这个

plt.legend(loc=(1.04,1))

这里的loc指的是我们的legend的左下角的那个顶点的坐标。这个是比较简单直接的方式

此外,我们有一些通用的方法来手动的设置我们的legend box 放置的地方,那就是使用我们的bbox_to_anchor这个参数,在这里我们可以只提供bbox 的一个参数来作为限制就是提供 (x0,y0),它所处的方向就有loc 这个参数来提供

plt.legend(bbox_to_anchor=(1.04,1), loc="upper left")

那么就是横坐标是1,纵坐标是0,但是要多出来一点那我们就设置为1.04,0 , 这个loc决定的是放置在我们legend的这个边框的那个部位。loc = "lower left"就是知识我们这个anchor的放置的位置,就是在我们legend(注解)边框的着陆点。


一个可以参考的例子:

l1 = plt.legend(bbox_to_anchor=(1.04,1), borderaxespad=0)
l2 = plt.legend(bbox_to_anchor=(1.04,0), loc="lower left", borderaxespad=0)
l3 = plt.legend(bbox_to_anchor=(1.04,0.5), loc="center left", borderaxespad=0)
l4 = plt.legend(bbox_to_anchor=(0,1.02,1,0.2), loc="lower left",mode="expand", borderaxespad=0, ncol=3)
l5 = plt.legend(bbox_to_anchor=(1,0), loc="lower right", bbox_transform=fig.transFigure, ncol=3)
l6 = plt.legend(bbox_to_anchor=(0.4,0.8), loc="upper right")

Reference

https://stackoverflow.com/a/43439132/14886118

Matplotlib 放置legend(bbox_to_anchor)相关推荐

  1. Matplotlib:Legend 图例

    1.图例legend基础语法及用法 matplotlib.pyplot.legend(*args, **kwargs)-loc Location code string, or tuple (see ...

  2. matplotlib之legend图例和标注(笔记三)

    代码: # -*- coding:utf-8 -*- #matplotlib设置legend图例 import matplotlib.pyplot as plt import numpy as npx ...

  3. 【Matplotlib】(二)图例legend

    Matplotlib 的 Legend 图例就是为了帮助我们展示每个数据对应的图像名称,更好的让读者认识到你的数据结构. 如图,红色标注部分就是 Legend 图例. 在之前的一篇文章 Matplot ...

  4. matplotlib命令与格式:图例legend语法及设置

    1.图例legend基础语法及用法 legend语法参数如下: matplotlib.pyplot.legend(*args, **kwargs) (1)设置图例位置 使用loc参数 plt.lege ...

  5. Python错误集锦:matplotlib legend提示:ValueError: Unrecognized location ‘upper’. Valid locations are

    原文链接:http://www.juzicode.com/archives/2486 错误提示: 使用matplotlib legend提示:ValueError: Unrecognized loca ...

  6. matplotlib :lengend图例参数(bbox_to_anchor)的使用

    参考博客:https://blog.csdn.net/helunqu2017/article/details/78641290 缘起:仿写决策树代码时 遇到plt.legend(bbox_to_anc ...

  7. 【Python基础】使用Matplotlib可视化数据的5个强大技巧

    作者 | Rizky Maulana Nurhidayat 编译 | VK 来源 | Towards Datas Science [导读]数据可视化用于以更直接的表示方式显示数据,并且更易于理解.它可 ...

  8. Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制

    CSDN 课程推荐:<Python 数据分析与挖掘>,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务.曾与联想.亨氏.网 ...

  9. python画图指定起点_python3绘图示例6-1(基于matplotlib,绘图流程介绍及设置等)...

    #!/usr/bin/env python # -*- coding:utf-8 -*- import os import pylab as py import numpy as np from ma ...

最新文章

  1. 在JLabel上显示图片,并且图片自适应JLabel的大小
  2. JavaWeb——多个Filter代码的执行顺序
  3. UIButton拖动响应事件,距离问题
  4. 移动app测试的多样性_app移动端接口性能测试
  5. STL的array容器
  6. javaserver_集成Spring和JavaServer Faces:改进的模板
  7. 面试官:HTTPS 为什么是安全的?说一下他的底层实现原理?
  8. 用VC++制作MSN、QQ 的消息提示窗口
  9. 计算机网络原理应用题/计算题
  10. jvm垃圾回收机制_详解JVM内存管理与垃圾回收机制1 - 内存管理
  11. 概要设计 英文_JavaScript 中的位运算和权限设计
  12. Excel之vlookup函数的模糊匹配和精准匹配
  13. ArcGIS 10.7安装包及手把手安装教程
  14. Excel成神之道-002-数据分组汇总
  15. 《UnityAPI.Cloth布料》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Cloth+friction+useGravity+normals+立钻哥哥++OK++)
  16. 在番看付费美女直播,不想花钱,我这样做了!
  17. 几款开源的ETL工具及ELT初探
  18. Winform(C#) 国内开源美化控件主题库2:花木兰控件库
  19. [UE4教程] UE4蓝图总结(入门)
  20. mybatis 多表查询 一对一 一对多查询

热门文章

  1. China SAFe DAY 2020中国规模化敏捷大会圆满落幕
  2. vivo 全球商城:商品系统架构设计与实践
  3. 分布式事务+DDD+负载均衡+服务治理已撸!微服务不就这点事?
  4. try-catch-finally中的4个巨坑,老程序员也搞不定!
  5. 卧槽,又一个Java面试神器!!!
  6. 基于Apache Flink的爱奇艺实时计算平台建设实践
  7. 来!说说你在流量控制方面的经验!
  8. 数据量很大,分页查询很慢,怎么破?
  9. 惊!史上最全的select加锁分析(Mysql)
  10. 那些我们常用的scrum工具、敏捷开发工具