1.最近遇到一个问题,关于图例legend如何画在图外的问题,并以适合的比例显示出来。

2.首先传统的做法如下,这种方式并不能满足我的要求,而且是显示在图内。

ax1.legend(loc='center left', bbox_to_anchor=(0.2, 1.12),ncol=3)

loc表示图例的位置,有多种形式:

‘North’             图例标识放在图顶端
‘South’            图例标识放在图底端
‘East’               图例标识放在图右方
‘West’              图例标识放在图左方
‘NorthEast’       图例标识放在图右上方(默认)
‘NorthWest      图例标识放在图左上方
‘SouthEast’      图例标识放在图右下角
‘SouthWest’     图例标识放在图左下角

有人说简单,有相同的方式,如下经测试不行,可能是本人用的python版本不行,所用的方式就是和前面一样,采用如下的方式来替换上面的legend位置。

‘NorthOutside’          图例标识放在图框外侧上方
‘SouthOutside’         图例标识放在图框外侧下方
‘EastOutside’           图例标识放在图框外侧右方
‘WestOutside’          图例标识放在图框外侧左方
‘NorthEastOutside’   图例标识放在图框外侧右上方
‘NorthWestOutside’  图例标识放在图框外侧左上方
‘SouthEastOutside’   图例标识放在图框外侧右下方
‘SouthWestOutside’  图例标识放在图框外侧左下方
(以上几个将图例标识放在框图外)
‘Best’                      图标标识放在图框内不与图冲突的最佳位置
‘BestOutside’           图标标识放在图框外使用最小空间的最佳位置

bbox_to_anchor:表示legend的位置,前一个表示左右,后一个表示上下。当使用这个参数时。loc将不再起正常的作用,ncol=3表示图例三列显示。

3.有人说要解决这个问题可以采用对坐标轴放大或是缩小的方式,经本人测试可以行,但是,放大缩小的比率不让人满意,且很难控制到适合的位置。有兴趣可以参考链接,最终得出此方法不行。

4.那么就没有办法了吗?NO.NO,请看下面,最终完成如下。

这就是本人要的效果,不废话,具体做法如下

box = ax1.get_position()
ax1.set_position([box.x0, box.y0, box.width , box.height* 0.8])

首先按上面的方式,如果你想将图例放上面就box.height*0.8,放右边就box.width*0.8其它方式一样。同时配合下面来使用。

ax1.legend(loc='center left', bbox_to_anchor=(0.2, 1.12),ncol=3)

主要是bbox_to_anchor的使用,自己可以修改参数试下,good luck for you.

python中关于图例legend在图外的画法简析相关推荐

  1. python绘制三维曲面图-python中Matplotlib实现绘制3D图的示例代码

    Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...

  2. 使用python中PIL库进行切图时候出现了图片全黑

    使用PIL的Image切图时候图片全黑 不知道大家有没有遇见这样得问题,使用python中PIL库进行切图时候出现了图片全黑得现象 今天写了个切图得代码,但是得到得图片是全黑的,像这样的情况: 不知道 ...

  3. chatgpt赋能python:Python中如何实现内循环到外循环

    Python中如何实现内循环到外循环 Python是一种广泛使用的编程语言,其文本解析和数据结构操作灵活,让Python编程变得非常简单.在Python编程中,内循环到外循环是常见的问题,因此本文将着 ...

  4. 【适合Python语言小白的股价图】利用Python中的matplotlib绘制股价图(非k线图)

    [适合Python语言小白的股价图]利用Python中的matplotlib绘制股价图(非k线图) 代码小白,最近做一家公司的股价复盘用到了matplotlib,在此做个小小的记录.代码的逻辑比较笨, ...

  5. 【写给以前的自己】python中,既生list何生tuple?简论学习数据结构(e.g.哈希化)对自己的提升

    刚学python时,很奇怪:python中list可增减元素,调用遍历也都方便,有了list为什么要有一个tuple的原生数据类型呢?list有的特性(比如长度弹性)tuple没有,而tuple能干的 ...

  6. python将图例画在图外

    plt.legend(labels=['label1','label2'], bbox_to_anchor=(1, 1))

  7. Python中利用Matplotlib绘制多图并合并展示

    有个需求就是利用Matplotlib画几个像模像样的统计图然后合并在一张图中,因为此前很少用这方面的东西,所以折腾了不少时间,今天介绍一下. 1.subplot多合一 其实,利用python 的mat ...

  8. 10分钟教你用Python中的Matplotlib绘制多图并合并展示

    前言 大家好,最近在研究在搞Python的大作业,有个需求就是利用Matplotlib画几个像模像样的统计图然后合并在一张图中,因为此前很少用这方面的东西,所以折腾了不少时间,今天介绍一下. subp ...

  9. python中matplotlib+GSview画矢量图

    针对空白太多的EPS文件 (1). 菜单栏  "options--show bounding boxs"  选中. (2).打开eps图,然后File->PS TO EPS, ...

  10. python绘制3d图-python中Matplotlib实现绘制3D图的示例代码

    Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...

最新文章

  1. 清北2021毕业生就业报告出炉!清华博士0人出国,70%进体制
  2. Vue——显示微信用户名称中enjoin表情
  3. Linux系统下手把手完成无人值守安装服务
  4. 【Linux网络编程】基于TCP流 I/O多路转接(poll) 的高性能http服务器
  5. 直流电机 步进电机 伺服电机
  6. octave错误-error: ‘squareThisNumber‘ undefined near line 1 column 1
  7. 「雕爷学编程」Arduino动手做(35)——模拟量声音传感器
  8. 【Linux开发】linux设备驱动归纳总结(四):2.进程调度的相关概念
  9. 从《牛津高阶英汉词典》中提取单词(1)
  10. 网站制作常用的cms系统有哪些?
  11. 顶级域名、一级域名、二级域名与IP
  12. redis之db(数据库)
  13. 网络安全面试题整理 - 甲方类(一)
  14. 高级语言与低级语言的区别
  15. python中新式类和经典类的区别
  16. MySQL5数据库更改默认等待连接时间(wait_timeout)
  17. 福州大学计算机考研好考,福州大学数学考研好不好考,考研考哪些?福大数学考研考情分析。...
  18. Gragh rigid theory 图刚度理论
  19. Deeplabv3+ Pytorch训练cityscapes数据集
  20. ChatGPT通过谷歌L3入职测试,拿到18万美元offer?程序员们该何去何从?

热门文章

  1. mysql Unknown storage engine 'InnoDB'解决
  2. Iphone 开发常用代码
  3. 维护2G网络的稳定必须提升到战略高度
  4. php set get 作用_浅谈PHP拦截器之__set()与__get()的理解与使用方法
  5. java创建实体 内存_加载Java实体时内存不足
  6. 插槽样式_小程序,自定义组件之间的引用,使用插槽扩展组件
  7. Scikit-Learn (浅谈Kmeans聚类算法)
  8. mysql xtrabackup-v2_MySQL物理备份基础知识(基于xtrabackup2.4版本)
  9. 【UVA10603】Fill(优先队列+状态转移)
  10. 关于C语言编程智能小车毕业设计,基于单片机的多功能智能小车设计-毕业设计论文.doc...