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 strip lstrip rstrip使用方法
Sep 06 Python
Python使用openpyxl读写excel文件的方法
Jun 30 Python
Django实现组合搜索的方法示例
Jan 23 Python
python合并已经存在的sheet数据到新sheet的方法
Dec 11 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
Feb 14 Python
python区分不同数据类型的方法
Oct 14 Python
python创建学生管理系统
Nov 22 Python
python psutil监控进程实例
Dec 17 Python
python3.8.1+selenium实现登录滑块验证功能
May 22 Python
Python logging模块进行封装实现原理解析
Aug 07 Python
Python实现扫码工具的示例代码
Oct 09 Python
Python可视化神器pyecharts绘制水球图
Jul 07 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应用程序的七个习惯深入分析
2013/06/08 PHP
php获取网页请求状态程序示例
2014/06/17 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
thinkphp5框架扩展redis类方法示例
2019/05/06 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
js获取内联样式的方法
2015/01/27 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
js数组去重的hash方法
2016/12/22 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
详解如何探测小程序返回到webview页面
2019/05/14 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
2017/07/06 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
Python网页解析器使用实例详解
2020/05/30 Python
Python新手学习函数默认参数设置
2020/06/03 Python
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
EJB timer的种类
2014/10/28 面试题
《宿建德江》教学反思
2014/04/23 职场文书
住宅使用说明书
2014/05/09 职场文书
2014物价局群众路线对照检查材料思想汇报
2014/09/21 职场文书
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
2021/05/31 Python
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL