python中关于图例legend在图外的画法简析
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在图外的画法简析相关推荐
- python绘制三维曲面图-python中Matplotlib实现绘制3D图的示例代码
Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...
- 使用python中PIL库进行切图时候出现了图片全黑
使用PIL的Image切图时候图片全黑 不知道大家有没有遇见这样得问题,使用python中PIL库进行切图时候出现了图片全黑得现象 今天写了个切图得代码,但是得到得图片是全黑的,像这样的情况: 不知道 ...
- chatgpt赋能python:Python中如何实现内循环到外循环
Python中如何实现内循环到外循环 Python是一种广泛使用的编程语言,其文本解析和数据结构操作灵活,让Python编程变得非常简单.在Python编程中,内循环到外循环是常见的问题,因此本文将着 ...
- 【适合Python语言小白的股价图】利用Python中的matplotlib绘制股价图(非k线图)
[适合Python语言小白的股价图]利用Python中的matplotlib绘制股价图(非k线图) 代码小白,最近做一家公司的股价复盘用到了matplotlib,在此做个小小的记录.代码的逻辑比较笨, ...
- 【写给以前的自己】python中,既生list何生tuple?简论学习数据结构(e.g.哈希化)对自己的提升
刚学python时,很奇怪:python中list可增减元素,调用遍历也都方便,有了list为什么要有一个tuple的原生数据类型呢?list有的特性(比如长度弹性)tuple没有,而tuple能干的 ...
- python将图例画在图外
plt.legend(labels=['label1','label2'], bbox_to_anchor=(1, 1))
- Python中利用Matplotlib绘制多图并合并展示
有个需求就是利用Matplotlib画几个像模像样的统计图然后合并在一张图中,因为此前很少用这方面的东西,所以折腾了不少时间,今天介绍一下. 1.subplot多合一 其实,利用python 的mat ...
- 10分钟教你用Python中的Matplotlib绘制多图并合并展示
前言 大家好,最近在研究在搞Python的大作业,有个需求就是利用Matplotlib画几个像模像样的统计图然后合并在一张图中,因为此前很少用这方面的东西,所以折腾了不少时间,今天介绍一下. subp ...
- python中matplotlib+GSview画矢量图
针对空白太多的EPS文件 (1). 菜单栏 "options--show bounding boxs" 选中. (2).打开eps图,然后File->PS TO EPS, ...
- python绘制3d图-python中Matplotlib实现绘制3D图的示例代码
Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...
最新文章
- 清北2021毕业生就业报告出炉!清华博士0人出国,70%进体制
- Vue——显示微信用户名称中enjoin表情
- Linux系统下手把手完成无人值守安装服务
- 【Linux网络编程】基于TCP流 I/O多路转接(poll) 的高性能http服务器
- 直流电机 步进电机 伺服电机
- octave错误-error: ‘squareThisNumber‘ undefined near line 1 column 1
- 「雕爷学编程」Arduino动手做(35)——模拟量声音传感器
- 【Linux开发】linux设备驱动归纳总结(四):2.进程调度的相关概念
- 从《牛津高阶英汉词典》中提取单词(1)
- 网站制作常用的cms系统有哪些?
- 顶级域名、一级域名、二级域名与IP
- redis之db(数据库)
- 网络安全面试题整理 - 甲方类(一)
- 高级语言与低级语言的区别
- python中新式类和经典类的区别
- MySQL5数据库更改默认等待连接时间(wait_timeout)
- 福州大学计算机考研好考,福州大学数学考研好不好考,考研考哪些?福大数学考研考情分析。...
- Gragh rigid theory 图刚度理论
- Deeplabv3+ Pytorch训练cityscapes数据集
- ChatGPT通过谷歌L3入职测试,拿到18万美元offer?程序员们该何去何从?
热门文章
- mysql Unknown storage engine 'InnoDB'解决
- Iphone 开发常用代码
- 维护2G网络的稳定必须提升到战略高度
- php set get 作用_浅谈PHP拦截器之__set()与__get()的理解与使用方法
- java创建实体 内存_加载Java实体时内存不足
- 插槽样式_小程序,自定义组件之间的引用,使用插槽扩展组件
- Scikit-Learn (浅谈Kmeans聚类算法)
- mysql xtrabackup-v2_MySQL物理备份基础知识(基于xtrabackup2.4版本)
- 【UVA10603】Fill(优先队列+状态转移)
- 关于C语言编程智能小车毕业设计,基于单片机的多功能智能小车设计-毕业设计论文.doc...