使用 Matplotlib 绘制折线图

news2025/2/23 9:50:03

使用 Matplotlib 绘制折线图

数据可视化是数据分析的重要组成部分,通过图表,我们可以更直观地理解数据背后的趋势和模式。Matplotlib 是 Python 最基础也是最常用的绘图库之一,非常适合初学者。本文将带你从零开始,逐步创建和自定义一个简单的折线图。

1. 安装和导入 Matplotlib

首先,你需要确保 Matplotlib 已安装。如果你还没有安装,可以使用以下命令进行安装:

pip install matplotlib

安装完成后,导入 Matplotlib 中的 pyplot 模块:

import matplotlib.pyplot as plt

2. 创建一个简单的折线图

我们从最基本的例子开始:绘制一个简单的折线图。假设我们有一组数据表示2024年暑期档电影总票房:

movies = ['抓娃娃', '默杀', '云边有个小卖部', '死侍与金刚狼']
sales = [276356, 131227, 49842, 35409]

现在,我们用 Matplotlib 绘制这组数据:

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.plot(movies, sales)
plt.title('Movies Sales')
plt.xlabel('Movie names')
plt.ylabel('Sales')
plt.show()

解释:

  • plt.rcParams['font.sans-serif'] = ['SimHei']:用于设置中文字体

  • plt.plot():用于绘制折线图,传入的第一个参数为 X 轴数据,第二个参数为 Y 轴数据。

  • plt.title():设置图表的标题。

  • plt.xlabel()plt.ylabel():分别设置 X 轴和 Y 轴的标签。

  • plt.show():显示图表。

运行这段代码,你会看到一个简单的折线图,显示2024年暑期档电影总票房情况。

在这里插入图片描述

图1 2024年暑期档电影总票房情况

3. 自定义图表样式

为了让图表更具可读性和美观性,我们可以对图表进行一些自定义设置,比如改变线条的颜色、样式以及添加数据点标记。

3.1 改变线条颜色和样式

plt.plot(movies, sales, color='green', linestyle='--', marker='o')
plt.title('Movies Sales')
plt.xlabel('Movie names')
plt.ylabel('Sales')
plt.show()

解释:

  • color='green':将线条颜色设为绿色。

  • linestyle='--':将线条样式设为虚线。

  • marker='o':在每个数据点上添加圆形标记。

    在这里插入图片描述

    图2

3.2 添加网格线和图例

plt.plot(movies, sales, color='blue', linestyle='--', marker='o', label='Sales Data')
plt.title('Monthly Sales')
plt.xlabel('Movie names')
plt.ylabel('Sales (Units)')
plt.grid(True)  # 添加网格线
plt.legend()   # 添加图例
plt.show()

解释:

  • plt.grid(True):启用图表网格线,方便查看数据点位置。

  • plt.legend():显示图例,使用 label 参数中的内容。

    在这里插入图片描述

    图3

4. 多条折线图

现在我们希望在同一张图表中比较各电影的总票房和人次情况。

sales_people = [666831821230817]

plt.plot(movies, sales, color='blue', marker='o', label='总票房')
plt.plot(movies, sales_people, color='red', marker='s', label='人次')
plt.title('Movie Sales Comparison')
plt.xlabel('Movie names')
plt.ylabel('Sales')
plt.grid(True)
plt.legend()
plt.show()

解释:

  • 在同一个 plt.plot() 语句中调用两次,以绘制两条不同的折线。

  • marker='s':将人次数据的标记样式改为方形。

    在这里插入图片描述

    图4

5. 保存图表

有时候,你可能需要将图表保存为图像文件而不是直接显示。你可以使用 plt.savefig() 方法:

sales_people = [666831821230817]
plt.plot(movies, sales, color='blue', marker='o', label='总票房')
plt.plot(movies, sales_people, color='red', marker='s', label='人次')
plt.title('Movie Sales Comparison')
plt.xlabel('Movie names')
plt.ylabel('Sales')
plt.grid(True)
plt.legend()
plt.show()
plt.savefig('movie_sales.png')  # 保存为 PNG 文件

解释:

  • plt.savefig('filename.png'):保存图表为指定文件名的图片。支持多种格式,如 PNG、JPG、SVG 等。

6. 结论

通过本文,你已经学会了如何使用 Matplotlib 创建和自定义基本的折线图。虽然这只是 Matplotlib 的冰山一角,但这些基础足以帮助你开始在数据分析中使用 Python 进行数据可视化。

接下来,尝试使用不同的数据集来创建图表,看看效果如何?

  • 使用数据集S1绘制简单折线图和多条折线图。
月份销售量(2023年)销售量(2024年)
3月300250
4月350340
5月200230

“要想学会,必先受累,多练则乖,不练则呆”,完成后分享结果至评论区。

需要完整代码,请关注我,私信“movies_lines”即可获得。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1995892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python Static Typing: 提升代码可靠性与可读性的使用技巧

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

Java毕业设计 基于SSM和Vue的酒店管理系统小程序

Java毕业设计 基于SSM和Vue的酒店管理系统小程序 这篇博文将介绍一个基于SSM框架和Vue开发的酒店管理系统微信小程序,适合用于Java毕业设计。 功能介绍 用户 登录 注册 忘记密码 首页 图片轮播 房间信息 房间详情 预订 收藏 评论 我的 订单信息 酒店管理…

Python 常用内置函数

目录 1、enumerate函数 1.1、for循环中使用 1.2、enumerate指定索引的起始值 1.3、enumerate在线程中的作用 2、Map 函数 2.1、map()函数可以传多个迭代器对象 3、lambda表达式(匿名函数) 示例 4、sort函数和sorted函数 4.1、sort()函数 4.2、…

vue2学习 -- vuex

文章目录 1. 理解2. 语法2.1 安装使用2.2 getters配置项2.3 四个map方法的使用2.4 vuex模块化 1. 理解 概念:专门在ue中实现集中式状态(数据)管理的一个ue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写&…

Java基础 1. Java开发环境搭建

Java基础 1. Java开发环境搭建 文章目录 Java基础 1. Java开发环境搭建1.1. 常用的DOS命令1.1.1. 常用的Windows组合键:1.1.2. 常用的DOS命令:1.1.3. 批处理文件 1.2. 通用文本编辑快捷键1.2.1. Sublime Text文本编辑器的安装与使用安装中英文打开方式调整字体大小文件扩展名 1…

LlamaIndex 如何可视化跟踪日志

LlamaIndex 中无论是 RAG 还是 Agent,都是需要和 LLM 进行交互,在这个流程流中包括搜索、Retrieve和推理等多个阶段。提示词在整个流程通过模板进行控制,LlamaIndex 通过整合和调度完成最终任务。 大模型的一个最大特点就是无法保证回答百分…

假如有一个嵌套集合,怎么通过stream流将集合放到一个集合之中?

假如有一个嵌套集合,怎么通过stream流将集合放到一个集合之中? 问题解释:你有一个嵌套的集合,想要通过 Stream 流的方式将其中嵌套的集合放到一个新的集合中。可以使用 flatMap 方法来实现。这种方法非常适合处理嵌套集合的情况。…

2个方法教你如何删除ZIP压缩包密码

zip压缩包设置了加密密码,每次解压文件都需要输入密码才能够顺利解压出文件,当压缩包文件不再需要加密的时候,大家肯定想删除压缩包密码,或是忘记了压缩包密码,想要通过删除操作将压缩包密码删除,就能够顺利…

Basic Pentesting:2-打靶渗透【附代码】(权限提升)

靶机下载地址: https://www.vulnhub.com/entry/basic-pentesting-2,241/https://www.vulnhub.com/entry/basic-pentesting-2,241/ 1. 主机发现端口扫描目录扫描敏感信息获取 1.1. 主机发现 nmap -sn 192.168.7.0/24|grep -B 2 08:00:27:1D:4A:27 1.2. 端口扫描 …

MongoDB学习记录

1、初识Mongo 概述:与关系型数据库不同,MongoDB 的数据以类似于 JSON 格式的二进制文档存储,通常称这种格式为Bson,Bson不仅支持JSON中已有的数据类型,还增加了一些额外的数据类型,例如日期和二进制数据&a…

第二十三天培训笔记

上午 在同步时,对删除和修改都比较慎重(监控同步时) mysql 主从搭建 前提软件 libaio , rsync 注意:先执行从服务器的脚本,再执行主服务器脚本 master-mysql 配置脚本 2 、其他常⽤函数 ( …

【ML】pre-train model 是什么如何微调它,如何预训练

【ML】pre-train model 是什么如何微调它,如何预训练 0. 预训练模型(Pre-trained Model)0.1 预训练模型的预训练过程0.2 如何微调预训练模型0.3 总结 1. Contextualized word Embedding2. 怎么 让 bert 模型变小3. 如何微调模型 0. 预训练模型…

# 利刃出鞘_Tomcat 核心原理解析(三)

利刃出鞘_Tomcat 核心原理解析(三) 一、 Tomcat专题 - Tomcat架构 - 启动流程 1、Tomcat 启动流程 2、Tomcat 启动 步骤 : 1) 启动tomcat , 需要调用 bin/startup.bat (在linux 目录下 , 需要调用 bin/startup.sh) &#xff0c…

推荐学计算机的好用的软件

翻译软件 网易有道翻译 在敲代码时会遇见一些报错,这些报错提示都是以英文方式呈现的,这时候英语不好的就可以进行截图翻译了。快捷键:Ctrl Alt D 它可以进行语言的选择 不仅可以语言之间的转换,还有一些其他的功能&#xff0c…

用AI生成海报设计!AI绘画大模型Flux的在线使用!

​ 前言/海报生成 除了这种高质量的人像图片生成, ​ ​这个刚开源的flux AI绘画大模型也能用来直接生成这种动画海报,其实这个就是基于它优质的语义理解能力以及文本生成能力。 那我们来操作一下, flux需要本地部署并且在comfyUI使用&…

【Linux】基础IO认知

文件 1、回顾C语言中的文件接口2、对文件的理解(阶段一)3、文件操作3、1、C的文件操作接口3、2、认识系统调用接口3、2、强化对fd文件描述符及周边知识的理解 1、回顾C语言中的文件接口 事实上,我们在C语言的学习中了解的文件并不是真正的文件。从语言角度来说&…

在MLU370运行CogVideoX-2b轻轻松松!

文章目录 一、paas平台环境配置二、模型下载三、环境下载1.pip 正常安装2.diffusers安装 四、代码准备五、运行效果演示 一、paas平台环境配置 驱动版本选择:大于或等于5.10.29 显卡选择:MLU370系列 卡数:1-8卡【推荐2卡起步】 镜像选择&…

【层归一化用于单个样本适合于序列建模,通俗】

层归一化(Layer Normalization),简称 LayerNorm,会将神经网络层的激活值规范到均值为0,并将其方差归一化为1。尤其是在循环神经网络(RNNs)和自注意力模型(如 Transformers&#xff0…

加强混合工作时代的组织网络安全态势

随着组织转向采用和实施混合和远程工作模式,网络安全的重要性从未如此重要。虽然工作场所的这种演变提供了灵活性并有望提高生产力,但它也带来了组织无法忽视的无数网络安全挑战。多样化工作环境的整合需要强大的安全措施、创新的保护策略和警惕的文化&a…

信息学奥赛初赛天天练-60-NOIP2018普及组-基础题4-逻辑推理、分类归纳、找规律

PDF文档公众号回复关键字:20240809 NOIP2018 基础题4 1 甲乙丙丁四人在考虑周末要不要外出郊游 已知①如果周末下雨,并且乙不去,则甲一定不去;②如果乙去,则丁一定去;③如果丙去,则丁一定不去&#xff1b…