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深入学习之上下文管理器
Aug 31 Python
详解Django中的form库的使用
Jul 18 Python
python处理按钮消息的实例详解
Jul 11 Python
Python使用requests提交HTTP表单的方法
Dec 26 Python
django如何通过类视图使用装饰器
Jul 24 Python
对python 树状嵌套结构的实现思路详解
Aug 09 Python
pytest中文文档之编写断言
Sep 12 Python
PYTHON如何读取和写入EXCEL里面的数据
Oct 28 Python
解决pycharm同一目录下无法import其他文件
Feb 12 Python
python 读取.nii格式图像实例
Jul 01 Python
keras的三种模型实现与区别说明
Jul 03 Python
用ldap作为django后端用户登录验证的实现
Dec 07 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
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
理解JS绑定事件
2016/01/19 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
Vue三种常用传值示例(父传子、子传父、非父子)
2018/07/24 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
nodejs和react实现即时通讯简易聊天室功能
2019/08/21 NodeJs
Python字典操作简明总结
2015/04/13 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
Django使用django-simple-captcha做验证码的实现示例
2021/01/07 Python
CSS3实现酷炫的3D旋转透视效果
2019/11/21 HTML / CSS
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
假日旅行社实习自我鉴定
2013/09/24 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
党员对十八届四中全会的期盼思想汇报范文
2014/10/17 职场文书
财务会计岗位职责
2015/02/03 职场文书
何玥事迹观后感
2015/06/16 职场文书
中学团支部工作总结
2015/08/13 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技