【python】深入探索使用Matplotlib中的plt.legend()添加图例

2024-02-20 04:04

本文主要是介绍【python】深入探索使用Matplotlib中的plt.legend()添加图例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

当我们绘制复杂的图表,尤其是包含多个数据系列的图表时,一个清晰、易读的图例是至关重要的。plt.legend()函数是Matplotlib库中用于添加和定制图例的关键工具。在本篇博文中,我们将深入探讨plt.legend()的功能、用法以及如何通过它提升图表的可读性和美观度。

1.plt.legend()的基本用法

首先,我们需要了解plt.legend()的基本用法。通常,在绘制完图表的数据系列后,我们可以简单地调用plt.legend()来自动创建一个图例。例如:

# -*- coding: utf-8 -*-
"""
Created on Mon Feb 19 13:33:58 2024@author: zqq
"""import matplotlib.pyplot as plt  
import numpy as np  x = np.linspace(0, 10, 100)  
y1 = np.sin(x)  
y2 = np.cos(x)  plt.rcParams['axes.unicode_minus']=False  # 显示负号plt.plot(x, y1, label='sin(x)')  
plt.plot(x, y2, label='cos(x)')  plt.legend()  
plt.show()

在这个例子中,label参数用于为数据系列指定标签,这些标签随后被plt.legend()用来创建图例。

这段代码在Spyder编辑器中如下:

在这里插入图片描述
运行代码,得到下面的图表:

在这里插入图片描述
可以看到图例(蓝色实线sin(x)、橙色实线cos(x))在左下角,我们可以通过设置超参数指定该图例的位置。plt.rcParams[‘axes.unicode_minus’]=False # 显示负号,这段代码表示正常显示负号。

使用方法:

plt.legend(loc='xxx')

xxx的取值为:

  • ‘best’(默认值):自动选择最佳位置。
  • ‘upper right’:右上角。
  • ‘upper left’:左上角。
  • ‘lower right’:右下角。
  • ‘lower left’:左下角。
  • ‘right’:右侧。
  • ‘center left’:左侧中央。
  • ‘center right’:右侧中央。
  • ‘lower center’:底部中央。
  • ‘upper center’:顶部中央。

2.plt.legend()的示例

# -*- coding: utf-8 -*-
"""
Created on Mon Feb 19 11:21:04 2024@author: zqq
"""import matplotlib.pyplot as plt
from matplotlib import pyplot as plt# 示例数据
x = [1, 2, 3, 4, 5, 6, 7]
y1 = [9, 12, 18, 20, 15, 17, 27]
y2 = [8, 12, 9, 14, 11, 15, 16]
y3 = [12, 14, 10, 12, 16, 18, 20]
y4 = [11, 19, 6, 15, 14, 16, 23]# 绘制数据,并添加标签
plt.plot(x, y1, label='数据系列1')
plt.plot(x, y2, label='数据系列2')
plt.plot(x, y3, label='数据系列3')
plt.plot(x, y4, label='数据系列4')plt.rcParams['font.sans-serif']=['simHei']  # 中文显示# 添加图例
plt.legend(loc='lower right')# 显示图表
plt.show()

plt.rcParams[‘font.sans-serif’]=[‘simHei’] # 中文显示,这段代码表示正常显示中文。

plt.legend(loc=‘lower right’),显示在右下角:

在这里插入图片描述

plt.legend(loc=‘upper left’),显示在左上角:

# -*- coding: utf-8 -*-
"""
Created on Mon Feb 19 11:21:04 2024@author: zqq
"""import matplotlib.pyplot as plt
from matplotlib import pyplot as plt# 示例数据
x = [1, 2, 3, 4, 5, 6, 7]
y1 = [9, 12, 18, 20, 15, 17, 27]
y2 = [8, 12, 9, 14, 11, 15, 16]
y3 = [12, 14, 10, 12, 16, 18, 20]
y4 = [11, 19, 6, 15, 14, 16, 23]# 绘制数据,并添加标签
plt.plot(x, y1, label='数据系列1')
plt.plot(x, y2, label='数据系列2')
plt.plot(x, y3, label='数据系列3')
plt.plot(x, y4, label='数据系列4')plt.rcParams['font.sans-serif']=['simHei']  # 中文显示# 添加图例
plt.legend(loc='upper left')# 显示图表
plt.show()

在这里插入图片描述

plt.legend(),默认参数,显示在最佳位置:

# -*- coding: utf-8 -*-
"""
Created on Mon Feb 19 11:21:04 2024@author: zqq
"""import matplotlib.pyplot as plt
from matplotlib import pyplot as plt# 示例数据
x = [1, 2, 3, 4, 5, 6, 7]
y1 = [9, 12, 18, 20, 15, 17, 27]
y2 = [8, 12, 9, 14, 11, 15, 16]
y3 = [12, 14, 10, 12, 16, 18, 20]
y4 = [11, 19, 6, 15, 14, 16, 23]# 绘制数据,并添加标签
plt.plot(x, y1, label='数据系列1')
plt.plot(x, y2, label='数据系列2')
plt.plot(x, y3, label='数据系列3')
plt.plot(x, y4, label='数据系列4')plt.rcParams['font.sans-serif']=['simHei']  # 中文显示# 添加图例
plt.legend()# 显示图表
plt.show()

在这里插入图片描述

图例不仅是数据系列的标识,它也是图表整体设计的一部分。合适的图例位置、大小和样式可以极大地提高图表的可读性和吸引力。在设计图表时,考虑图例与其他图表元素(如标题、轴标签、刻度等)的协调性和一致性非常重要。plt.legend()是Matplotlib中不可或缺的一个函数,它使得我们能够轻松地为图表添加清晰、美观的图例。通过了解其基本用法和定制选项,你可以创建出既信息丰富又视觉上吸引人的图表。不断实践和探索,你将发现plt.legend()为你的数据可视化工作带来的无限可能。

这是2024年的第一篇博文,本来想写更好的内容,但是工作是越来越卷了,根本没有时间撰写更优质的博文,已经断更挺长时间了。借着今天修改代码中的图例,挤出时间写成文章,实属不易,干货不多,还望各位海涵。后面将继续更新专栏文章,回馈广大粉丝朋友。

好了,今天的学习就到这里,让我们下期再见。

参考:
https://blog.csdn.net/weixin_74850661/article/details/132949071

这篇关于【python】深入探索使用Matplotlib中的plt.legend()添加图例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/726982

相关文章

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC