python matplotlib实现将图例放在图外


Posted in Python onApril 17, 2020

关于matplotlib如何设置图例的位置?如何将图例放在图外?以及如何在一幅图有多个子图的情况下,删除重复的图例?我用一个简单的例子说明一下。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure(1)
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)

df1 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df2 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df3 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df4 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])

df1.plot(ax = ax1, title = "df1", grid = 'on')
df2.plot(ax = ax2, title = "df1", grid = 'on')
df3.plot(ax = ax3, title = "df1", grid = 'on')
df4.plot(ax = ax4, title = "df1", grid = 'on')

plt.show()

运行结果如下

python matplotlib实现将图例放在图外

可以看出,随机生成了几个dataframe,在一个figure()中生成了四个子图,每个子图的图例都是dataframe.columns里的值,那么如何移除这些图例?

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure(1)
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)

df1 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df2 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df3 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df4 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])

df1.plot(ax = ax1, title = "df1", grid = 'on')
df2.plot(ax = ax2, title = "df1", grid = 'on')
df3.plot(ax = ax3, title = "df1", grid = 'on')
df4.plot(ax = ax4, title = "df1", grid = 'on')

ax1.legend_.remove()  ##移除子图ax1中的图例
ax2.legend_.remove()  ##移除子图ax2中的图例
ax3.legend_.remove()  ##移除子图ax3中的图例

plt.show()

python matplotlib实现将图例放在图外

可以看出ax1,ax2,ax3中的图例都被移除了,但是上图还不是很美观?有没有什么办法将图例放到图外面呢?请看:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure(1)
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)

df1 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df2 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df3 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df4 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])

df1.plot(ax = ax1, title = "df1", grid = 'on')
df2.plot(ax = ax2, title = "df1", grid = 'on')
df3.plot(ax = ax3, title = "df1", grid = 'on')
df4.plot(ax = ax4, title = "df1", grid = 'on')

ax1.legend_.remove()
ax2.legend_.remove()
ax3.legend_.remove()
ax4.legend(loc=2, bbox_to_anchor=(1.05,1.0),borderaxespad = 0.)  ##设置ax4中legend的位置,将其放在图外

plt.show()

python matplotlib实现将图例放在图外

其中参数loc用于设置legend的位置

bbox_to_anchor用于在bbox_transform坐标(默认轴坐标)中为图例指定任意位置。

以上这篇python matplotlib实现将图例放在图外就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
常用python编程模板汇总
Feb 12 Python
Python性能提升之延迟初始化
Dec 04 Python
Python实现获取命令行输出结果的方法
Jun 10 Python
Python文本特征抽取与向量化算法学习
Dec 22 Python
Django中Forms的使用代码解析
Feb 10 Python
python调用百度语音识别实现大音频文件语音识别功能
Aug 30 Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 Python
Django之创建引擎索引报错及解决详解
Jul 17 Python
python快速排序的实现及运行时间比较
Nov 22 Python
python实现图像全景拼接
Mar 27 Python
python对输出的奇数偶数排序实例代码
Dec 04 Python
Python基于百度API识别并提取图片中文字
Jun 27 Python
python 比较字典value的最大值的几种方法
Apr 17 #Python
Python3 selenium 实现QQ群接龙自动化功能
Apr 17 #Python
python plt可视化——打印特殊符号和制作图例代码
Apr 17 #Python
Python 多线程共享变量的实现示例
Apr 17 #Python
matplotlib 对坐标的控制,加图例注释的操作
Apr 17 #Python
matplotlib quiver箭图绘制案例
Apr 17 #Python
更新升级python和pip版本后不生效的问题解决
Apr 17 #Python
You might like
php 中英文语言转换类
2011/09/07 PHP
destoon实现商铺管理主页设置增加新菜单的方法
2014/06/26 PHP
php可生成缩略图的文件上传类实例
2014/12/17 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
Date对象格式化函数代码
2010/07/17 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
2015/03/04 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
详解javascript传统方法实现异步校验
2016/01/22 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
Javascript中window.name属性详解
2020/11/19 Javascript
python实现的文件夹清理程序分享
2014/11/22 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
Python序列类型的打包和解包实例
2019/12/21 Python
python连接PostgreSQL过程解析
2020/02/09 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
预备党员考察意见范文
2015/06/01 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
Python移位密码、仿射变换解密实例代码
2021/06/27 Python
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL
Python实现视频自动打码的示例代码
2022/04/08 Python