matplotlib图例legend语法及设置的方法
作者:开码牛 发布时间:2023-01-07 04:23:37
标签:matplotlib,legend
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)
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()
来源:https://blog.csdn.net/helunqu2017/article/details/78641290
0
投稿
猜你喜欢
- 用QQ聊过天的朋友都对它的自动隐藏窗口功能爱不释手,它可以使窗口显得清爽整洁而且富有动感,笔者的几个朋
- 导语🎼嗨,大宝贝们,又到周末啦,今天你放假了嘛?周末的日子总是无所事事,无所事事。一直在想做什么游戏,给大家来点儿新鲜感,这不?玩游戏、找游
- Memcached是一种高性能的分布式内存对象缓存系统,常用于加速动态Web应用程序。在本文中,我们将使用Python和PyQt5来制作一个
- 本文实例讲述了vue实现图片懒加载的方法。分享给大家供大家参考,具体如下:vue图片懒加载使用首先第一步,安装插件vue-lazyloadn
- 我们经常会遇到这样的问题你还在为你的MySQL命令模式下,前面的提示信息还是:mysql>,那么我们如何更改mysql命令下提示信息呢
- 最近忙成了狗,五六个项目堆在一起,头疼的是测试还失惊无神的给我丢来一个几十甚至上百M的日志文件,动不动就几十上百万行,就算是搜索也看得头昏眼
- 原理中文分词,即 Chinese Word Segmentation,即将一个汉字序列进行切分,得到一个个单独的词。表面上看,分词其实就是那
- 打包pyinstaller 02.py --noconsole --hidden-import PySide2.QtXml报错0:The &
- 环境:Oracle 11.2.0.4 RAC(2 nodes)说明:假设新增闪存挂载点是/flash(使用了第三方的集群文件系统),如果是使
- 本文实例讲述了ASP.NET数据库操作类。分享给大家供大家参考,具体如下:using System;using System.Data;us
- 用python读取excel表中的数据假如说有如下一张存储了数据的excel表,其中x1-x6是特征,y_label是特征对应的类别标签。我
- 在numpy中的ndarry是一个数组,因此index就是位置下标,注意下标是从0开始增加:在插入时使用np.insert(),在末尾添加时
- 引言日常开发中,我们经常会使用到group by。亲爱的小伙伴,你是否知道group by的工作原理呢?group by和having有什么
- If...Then...Else 语句的一种变形,即添加任意多个 ElseIf 子句以扩充 If...Then...Else 语句的功能,允
- 复制是将主数据库的DDL和DML操作通过二进制日志传到从库上,然后再从库重做,从而使得从库和主库保持数据的同步。MySQL可以从一台主库同时
- 么是约瑟夫问题?约瑟夫问题是一个有趣的数学游戏,游戏规则如下:1、N个人围成一个圈,编号从1开始,依次到N。2、编号为M的游戏参与者开始报数
- Git 标签如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签。比如说,我们想为我们的 w
- 树和图的数据结构,就很有意思啦。# coding = utf-8class BinaryTree:def __init__(self, ro
- 1. 引言Python中有一些内置函数,可以使我们的代码非常优雅。zip 函数就是其中之一,但是zip 函数的使用对于初学者来说不是很直观,
- web.config第一种方法:<?xml version="1.0" encoding="utf-8&