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中的yield函数的用法
Apr 03 Python
Python打印scrapy蜘蛛抓取树结构的方法
Apr 08 Python
Python科学计算之NumPy入门教程
Jan 15 Python
Python实现矩阵加法和乘法的方法分析
Dec 19 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
Dec 12 Python
python使用正则筛选信用卡
Jan 27 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
Django获取应用下的所有models的例子
Aug 30 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
Jan 02 Python
Pytorch DataLoader 变长数据处理方式
Jan 08 Python
Python中的 ansible 动态Inventory 脚本
Jan 19 Python
Python BeautifulReport可视化报告代码实例
Apr 13 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 什么是PEAR?
2009/03/19 PHP
php防攻击代码升级版
2010/12/29 PHP
php计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
php使用imagecopymerge()函数创建半透明水印
2018/01/25 PHP
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
Javascript中replace()小结
2015/09/30 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
js实现打字小游戏
2019/12/17 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
JS算法教程之字符串去重与字符串反转
2020/12/15 Javascript
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
浅析Python中的for 循环
2016/06/09 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
EM算法的python实现的方法步骤
2018/01/02 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
Pytorch之parameters的使用
2019/12/31 Python
岗位职责定义及内容
2013/11/08 职场文书
活动邀请函范文
2014/01/19 职场文书
优秀党员获奖感言
2014/02/18 职场文书
公司任命书模板
2014/06/06 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
党支部反对四风思想汇报
2014/10/10 职场文书
公司捐书倡议书
2015/04/27 职场文书