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分析git log日志示例
Feb 27 Python
Python之eval()函数危险性浅析
Jul 03 Python
在Python中进行自动化单元测试的教程
Apr 15 Python
Python简单实现子网掩码转换的方法
Apr 13 Python
python嵌套字典比较值与取值的实现示例
Nov 03 Python
virtualenv 指定 python 解释器的版本方法
Oct 25 Python
使用python实现http及ftp服务进行数据传输的方法
Oct 26 Python
Django JWT Token RestfulAPI用户认证详解
Jan 23 Python
python binascii 进制转换实例
Jun 12 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
Aug 15 Python
django前端页面下拉选择框默认值设置方式
Aug 09 Python
python help函数实例用法
Dec 06 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
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
2007/08/26 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
Yii2如何批量添加数据
2016/05/17 PHP
js 字符串转换成数字的三种方法
2013/03/23 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
jquery简单实现鼠标经过导航条改变背景图
2013/12/17 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
Bootstrap实现翻页效果
2017/11/27 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
详解React服务端渲染从入门到精通
2019/03/28 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
Vue如何实现验证码输入交互
2020/12/07 Vue.js
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
举例讲解Python的lambda语句声明匿名函数的用法
2016/07/01 Python
Python探索之Metaclass初步了解
2017/10/28 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
python构建指数平滑预测模型示例
2019/11/21 Python
Python hashlib模块实例使用详解
2019/12/24 Python
python logging添加filter教程
2019/12/24 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
HTML5新增加的功能详解
2016/09/05 HTML / CSS
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
刮痧观后感
2015/06/05 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
Linux服务器离线安装 nginx的详细步骤
2022/06/16 Servers