当前位置: 首页 > news >正文

Python绘图入门:使用 Matplotlib 绘制折线图

使用 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”即可获得。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL 的 InnoDB 缓冲池里有什么?--InnoDB存储梳理(二)
  • 2024 年最佳 7 款 Java 分析器工具
  • Linux驱动入门实验班——基础驱动模板(附百问网视频链接)
  • MongoDB | MongoDB 终端查询
  • 详细分析Python链接Oracle的多种方式(附Demo)
  • “从头开始训练模型,几乎没有意义”
  • 【亲测有效!】ubuntu20.04和Centos7离线安装docker及nvidia-container-toolkit
  • 从零搭建React全家桶框架教程:快速搭建react+react-router+redux项目
  • 新专利:温室土壤温湿度预测模型构建方法和程序产品
  • day09——集合ArrayList
  • vue使用富文本编辑器+自由伸缩图片
  • 在Linux下编译安装Python3.10.0及以上环境(解决了openssl依赖问题)
  • javaEE WebServlet、SpringWebMVC、SpringBoot实现跨域访问的4种方式及优先级
  • git update-git-for-windows 升级失败
  • django项目中通用的分页组件
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • Android 架构优化~MVP 架构改造
  • CentOS 7 修改主机名
  • Codepen 每日精选(2018-3-25)
  • CSS实用技巧干货
  • Docker: 容器互访的三种方式
  • js操作时间(持续更新)
  • LeetCode29.两数相除 JavaScript
  • Spark RDD学习: aggregate函数
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • SQLServer之创建数据库快照
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 关于使用markdown的方法(引自CSDN教程)
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 前端技术周刊 2019-02-11 Serverless
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 字符串匹配基础上
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • #NOIP 2014# day.1 T2 联合权值
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (C语言)fgets与fputs函数详解
  • (function(){})()的分步解析
  • (SpringBoot)第七章:SpringBoot日志文件
  • (web自动化测试+python)1
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)视频码率,帧率和分辨率的联系与区别
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Core 中插件式开发实现
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET单元测试使用AutoFixture按需填充的方法总结