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 相关文章推荐
tornado捕获和处理404错误的方法
Feb 26 Python
Python中itertools模块用法详解
Sep 25 Python
利用Python绘制数据的瀑布图的教程
Apr 07 Python
使用Python编写一个在Linux下实现截图分享的脚本的教程
Apr 24 Python
Python实现简单多线程任务队列
Feb 27 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
May 17 Python
Python操作qml对象过程详解
Sep 26 Python
python logging添加filter教程
Dec 24 Python
Python终端输出彩色字符方法详解
Feb 11 Python
Python 自由定制表格的实现示例
Mar 20 Python
如何利用python读取micaps文件详解
Oct 18 Python
Python数据分析入门之数据读取与存储
May 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实现的一致性哈希算法完整实例
2015/11/14 PHP
orm获取关联表里的属性值
2016/04/17 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
javascript实现不同颜色Tab标签切换效果
2016/04/27 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
Python语法快速入门指南
2015/10/12 Python
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
python word转pdf代码实例
2019/08/16 Python
Python超越函数积分运算以及绘图实现代码
2019/11/20 Python
tensorflow之变量初始化(tf.Variable)使用详解
2020/02/06 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
Matplotlib自定义坐标轴刻度的实现示例
2020/06/18 Python
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
西班牙自行车和跑步商店:Alltricks
2018/07/07 全球购物
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
交通事故赔偿协议书
2014/04/15 职场文书
公司合作意向书范文
2014/07/30 职场文书
员工表扬信怎么写
2015/05/05 职场文书
公司保密管理制度
2015/08/04 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript