matplotlib图例legend语法及设置的方法


Posted in Python onJuly 28, 2020

1.图例legend基础语法及用法

legend语法参数如下: matplotlib.pyplot.legend(*args, **kwargs)

Keyword Description
loc Location code string, or tuple (see below).图例所有figure位置
prop the font property字体参数
fontsize the font size (used only if prop is not specified)
markerscale the relative size of legend markers vs. original 图例标记与原始标记的相对大小
markerfirst If True (default), marker is to left of the label. 如果为True,则图例标记位于图例标签的左侧
numpoints the number of points in the legend for line 为线条图图例条目创建的标记点数
scatterpoints the number of points in the legend for scatter plot 为散点图图例条目创建的标记点数
scatteryoffsets a list of yoffsets for scatter symbols in legend 为散点图图例条目创建的标记的垂直偏移量
frameon If True, draw the legend on a patch (frame). 控制是否应在图例周围绘制框架
fancybox If True, draw the frame with a round fancybox. 控制是否应在构成图例背景的FancyBboxPatch周围启用圆边
shadow If True, draw a shadow behind legend. 控制是否在图例后面画一个阴影
framealpha Transparency of the frame. 控制图例框架的 Alpha 透明度
edgecolor Frame edgecolor.
facecolor Frame facecolor.
ncol number of columns 设置图例分为n列展示
borderpad the fractional whitespace inside the legend border 图例边框的内边距
labelspacing the vertical space between the legend entries 图例条目之间的垂直间距
handlelength the length of the legend handles 图例句柄的长度
handleheight the height of the legend handles 图例句柄的高度
handletextpad the pad between the legend handle and text 图例句柄和文本之间的间距
borderaxespad the pad between the axes and legend border 轴与图例边框之间的距离
columnspacing the spacing between columns 列间距
title the legend title
bbox_to_anchor the bbox that the legend will be anchored.指定图例在轴的位置
bbox_transform the transform for the bbox. transAxes if None.

(1)设置图例位置

使用loc参数

0: ‘best' 1: ‘upper right' 2: ‘upper left' 3: ‘lower left' 4: ‘lower right' 5: ‘right' 6: ‘center left' 7: ‘center right' 8: ‘lower center' 9: ‘upper center' 10: ‘center'

(2)设置图例字体

#设置字体大小
fontsize : int or float or {‘xx-small', ‘x-small', ‘small', ‘medium', ‘large', ‘x-large', ‘xx-large'}

(3)设置图例边框及背景

plt.legend(loc='best',frameon=False) #去掉图例边框
plt.legend(loc='best',edgecolor='blue') #设置图例边框颜色
plt.legend(loc='best',facecolor='blue') #设置图例背景颜色,若无边框,参数无效

(4)设置图例标题

plt.legend(loc='best',title='figure 1 legend') #去掉图例边框

2.legend面向对象命令

(1)获取并设置legend图例       

plt.legend(loc=0, numpoints=1)
leg = plt.gca().get_legend() #或leg=ax.get_legend()
ltext = leg.get_texts()
plt.setp(ltext, fontsize=12,fontweight='bold')

(2)设置图例

legend = ax.legend((rectsTest1, rectsTest2, rectsTest3), ('test1', 'test2', 'test3')) 
legend = ax.legend(loc='upper center', shadow=True, fontsize='x-large')
legend.get_frame().set_facecolor('red') #设置图例legend背景为红色
frame = legend.get_frame() 
frame.set_alpha(1) 
frame.set_facecolor('none') #设置图例legend背景透明

(3)移除图例

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

3.案例:设置图例legend到图形边界外

#主要是bbox_to_anchor的使用
box = ax1.get_position()
ax1.set_position([box.x0, box.y0, box.width , box.height* 0.8])
ax1.legend(loc='center', bbox_to_anchor=(0.5, 1.2),ncol=3)

4.案例:显示多图例legend

import matplotlib.pyplot as plt
import numpy as np
x = np.random.uniform(-1, 1, 4)
y = np.random.uniform(-1, 1, 4)
p1, = plt.plot([1,2,3])
p2, = plt.plot([3,2,1])
l1 = plt.legend([p2, p1], ["line 2", "line 1"], loc='upper left')
 
p3 = plt.scatter(x[0:2], y[0:2], marker = 'D', color='r')
p4 = plt.scatter(x[2:], y[2:], marker = 'D', color='g')
# This removes l1 from the axes.
plt.legend([p3, p4], ['label', 'label1'], loc='lower right', scatterpoints=1)
# Add l1 as a separate artist to the axes
plt.gca().add_artist(l1)

matplotlib图例legend语法及设置的方法

import matplotlib.pyplot as plt
line1, = plt.plot([1,2,3], label="Line 1", linestyle='--')
line2, = plt.plot([3,2,1], label="Line 2", linewidth=4)
# 为第一个线条创建图例
first_legend = plt.legend(handles=[line1], loc=1)
# 手动将图例添加到当前轴域
ax = plt.gca().add_artist(first_legend)
# 为第二个线条创建另一个图例
plt.legend(handles=[line2], loc=4)
plt.show()

matplotlib图例legend语法及设置的方法

 到此这篇关于matplotlib图例legend语法及设置的方法的文章就介绍到这了,更多相关matplotlib legend内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python类的用法实例浅析
May 27 Python
Python实现LRU算法的2种方法
Jun 24 Python
python学习之编写查询ip程序
Feb 27 Python
如何利用Fabric自动化你的任务
Oct 20 Python
Python如何快速上手? 快速掌握一门新语言的方法
Nov 14 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
Aug 03 Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 Python
python添加菜单图文讲解
Jun 04 Python
解决TensorFlow程序无限制占用GPU的方法
Jun 30 Python
Python必须了解的35个关键词
Jul 16 Python
python tkinter实现连连看游戏
Nov 16 Python
Matplotlib中%matplotlib inline如何使用
Jul 28 #Python
Python基于xlrd模块处理合并单元格
Jul 28 #Python
Python 在函数上添加包装器
Jul 28 #Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 #Python
Python 如何反方向迭代一个序列
Jul 28 #Python
Python Matplotlib简易教程(小白教程)
Jul 28 #Python
Python把图片转化为pdf代码实例
Jul 28 #Python
You might like
PHP中数组合并的两种方法及区别介绍
2012/09/14 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
PHP实现非阻塞模式的方法分析
2018/07/26 PHP
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
javascript实现网页字符定位的方法
2015/07/14 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
python实现DNS正向查询、反向查询的例子
2014/04/25 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
合同专员岗位职责
2013/12/18 职场文书
财务管理职业生涯规划范文
2013/12/27 职场文书
初三家长会邀请函
2014/01/18 职场文书
加拿大探亲邀请信
2014/01/28 职场文书
不打扫卫生检讨书
2014/02/12 职场文书
邀请函的格式
2015/01/30 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python
tree shaking对打包体积优化及作用
2022/07/07 Java/Android