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 16 Python
详细讲解Python中的文件I/O操作
May 24 Python
利用Python的Django框架生成PDF文件的教程
Jul 22 Python
Python实现带百分比的进度条
Jun 28 Python
使用Python多线程爬虫爬取电影天堂资源
Sep 23 Python
Python字典实现简单的三级菜单(实例讲解)
Jul 31 Python
python验证码识别实例代码
Feb 03 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
Mar 15 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
Python 解码Base64 得到码流格式文本实例
Jan 09 Python
PyCharm上安装Package的实现(以pandas为例)
Sep 18 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
Feb 22 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 中执行系统外部命令
2006/10/09 PHP
解析php php_openssl.dll的作用
2013/07/01 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
Prototype Function对象 学习
2009/07/12 Javascript
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
鼠标拖拽移动子窗体的JS实现
2014/02/25 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
Webpack之tree-starking 解析
2018/09/11 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
Python守护进程和脚本单例运行详解
2017/01/06 Python
Python+threading模块对单个接口进行并发测试
2019/06/25 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
有机童装:Toby Tiger
2018/05/23 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
警察思想汇报
2014/01/04 职场文书
高中物理教学反思
2014/02/08 职场文书
中学生家长评语大全
2014/04/16 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书
js之ajax文件上传
2021/05/13 Javascript
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL
解决 Redis 秒杀超卖场景的高并发
2022/04/12 Redis