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实现Const详解
Jan 27 Python
Python实现简单的可逆加密程序实例
Mar 05 Python
在Python中使用NLTK库实现对词干的提取的教程
Apr 08 Python
Python文件和流(实例讲解)
Sep 12 Python
python交互式图形编程实例(三)
Nov 17 Python
python flask实现分页的示例代码
Aug 02 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
May 08 Python
Python是怎样处理json模块的
Jul 16 Python
Ubuntu权限不足无法创建文件夹解决方案
Nov 14 Python
Python如何实现Paramiko的二次封装
Jan 30 Python
Python图像处理之图像拼接
Apr 28 Python
教你怎么用Python实现GIF动图的提取及合成
Jun 15 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 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
用PHP实现递归循环每一个目录
2010/08/08 PHP
PHP 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
Destoon实现多表查询示例
2014/08/21 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
javascript实现可键盘控制的抽奖系统
2016/03/10 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
2020/11/17 Vue.js
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
20招让你的Python飞起来!
2016/09/27 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
超简单使用Python换脸实例
2019/03/27 Python
基于Python中的yield表达式介绍
2019/11/19 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
在校生钳工实习自我鉴定
2013/09/19 职场文书
党委书记岗位职责
2013/11/24 职场文书
学校卫生检查制度
2014/02/03 职场文书
二人合伙经营协议书
2014/09/13 职场文书
党员个人剖析材料
2014/09/30 职场文书
八达岭长城导游词
2015/01/30 职场文书
详细了解MVC+proxy
2021/07/09 Java/Android
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle
windows server2008 开启端口的实现方法
2022/06/25 Servers