Python Matplotlib 教程-Matplotlib 如何绘制常见图表

news/2025/1/13 3:06:27/

Python Matplotlib 如何绘制常见图表

Matplotlib 是 Python 中最流行的数据可视化库之一,提供了多种方式绘制各种图表,如折线图、柱状图、散点图、饼图等。本篇文章将从基础入门开始,逐步介绍如何使用 Matplotlib 绘制这些常见图表,帮助新手快速掌握 Matplotlib 的核心功能。

在这里插入图片描述

目录

  • 折线图
  • 柱状图
  • 散点图
  • 饼图
  • 直方图
  • 箱线图
  • 面积图
  • 热力图
  • 总结与建议

折线图

折线图是最常见的图表类型之一,通常用于显示随时间变化的数据趋势。

基本折线图

python">import matplotlib.pyplot as plt# 数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 25, 30]# 绘制折线图
plt.plot(x, y, marker='o', linestyle='-', color='blue', label='数据趋势')
plt.title('折线图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.legend()
plt.grid()
plt.show()

多条折线图

python">x = [1, 2, 3, 4, 5]
y1 = [10, 15, 20, 25, 30]
y2 = [5, 10, 15, 20, 25]plt.plot(x, y1, marker='o', label='数据1', color='blue')
plt.plot(x, y2, marker='s', label='数据2', color='green')
plt.title('多条折线图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.legend()
plt.grid()
plt.show()

柱状图

柱状图常用于比较多个类别的数据大小。

垂直柱状图

python">categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25]plt.bar(categories, values, color='skyblue')
plt.title('垂直柱状图')
plt.xlabel('类别')
plt.ylabel('值')
plt.grid(axis='y')
plt.show()

水平柱状图

python">plt.barh(categories, values, color='lightgreen')
plt.title('水平柱状图')
plt.xlabel('值')
plt.ylabel('类别')
plt.grid(axis='x')
plt.show()

分组柱状图

python">import numpy as npcategories = ['A', 'B', 'C', 'D']
values1 = [10, 20, 15, 25]
values2 = [12, 18, 20, 22]
x = np.arange(len(categories))plt.bar(x - 0.2, values1, width=0.4, label='组1', color='blue')
plt.bar(x + 0.2, values2, width=0.4, label='组2', color='orange')
plt.xticks(x, categories)
plt.title('分组柱状图')
plt.xlabel('类别')
plt.ylabel('值')
plt.legend()
plt.show()

散点图

散点图用于展示数据点在二维平面上的分布情况。

基本散点图

python">x = [5, 7, 8, 7, 2, 17, 2, 9, 4, 11]
y = [99, 86, 87, 88, 100, 86, 103, 87, 94, 78]plt.scatter(x, y, color='purple')
plt.title('散点图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.grid()
plt.show()

带大小和颜色的散点图

python">sizes = [20, 50, 100, 200, 300, 400, 500, 800, 1000, 1200]
colors = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]plt.scatter(x, y, s=sizes, c=colors, cmap='viridis', alpha=0.7)
plt.colorbar(label='颜色值')
plt.title('带大小和颜色的散点图')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.grid()
plt.show()

饼图

饼图用于展示数据在整体中的占比。

基本饼图

python">labels = ['A', 'B', 'C', 'D']
sizes = [25, 35, 20, 20]plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
plt.title('饼图示例')
plt.show()

带分离效果的饼图

python">explode = [0.1, 0, 0, 0]  # 仅分离第一个部分plt.pie(sizes, labels=labels, autopct='%1.1f%%', explode=explode, startangle=90, shadow=True)
plt.title('带分离效果的饼图')
plt.show()

直方图

直方图用于展示数据分布的频率。

基本直方图

python">data = [7, 8, 5, 3, 10, 7, 8, 9, 6, 5, 5, 6, 8, 8, 9]plt.hist(data, bins=5, color='lightblue', edgecolor='black')
plt.title('直方图示例')
plt.xlabel('区间')
plt.ylabel('频率')
plt.show()

箱线图

箱线图(盒须图)用于展示数据的分布特征,包括中位数、四分位数和异常值。

python">data = [7, 8, 5, 3, 10, 7, 8, 9, 6, 5, 5, 6, 8, 8, 9]plt.boxplot(data, patch_artist=True, boxprops=dict(facecolor='lightblue'))
plt.title('箱线图示例')
plt.ylabel('值')
plt.show()

面积图

面积图适合用来显示累积趋势。

python">x = [1, 2, 3, 4, 5]
y1 = [10, 20, 30, 40, 50]
y2 = [5, 15, 25, 35, 45]plt.fill_between(x, y1, color='skyblue', alpha=0.5, label='数据1')
plt.fill_between(x, y2, color='orange', alpha=0.5, label='数据2')
plt.title('面积图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.legend()
plt.show()

热力图

热力图用于展示数据的强度分布。

python">import numpy as npdata = np.random.rand(5, 5)
plt.imshow(data, cmap='viridis', interpolation='nearest')
plt.colorbar(label='强度值')
plt.title('热力图示例')
plt.show()

总结与建议

通过本篇文章,你学习了使用 Matplotlib 绘制折线图、柱状图、散点图、饼图、直方图、箱线图、面积图和热力图的基础方法。以下是几点建议:

  1. 理解数据特点:根据数据的特点选择合适的图表类型。
  2. 丰富图表细节:通过自定义颜色、标记和标签,提升图表的表达力。
  3. 实践与尝试:尝试结合多种图表绘制,解决实际问题。

现在就打开你的代码编辑器,开始尝试用 Matplotlib 绘制图表吧!


http://www.ppmy.cn/news/1562684.html

相关文章

切比雪夫插值

切比雪夫插值是一种基于切比雪夫节点的多项式插值方法,其优势是减少插值误差(特别是龙格现象:表现为高维插值时在边缘处插值误差骤增)。本文对其基本操作进行说明。 1. 切比雪夫节点 切比雪夫插值的核心是使用切比雪夫节点作为插值点。切比雪夫节点是切…

Ungoogled Chromium127 编译指南 MacOS篇(八)- 开始编译

1. 引言 完成了所有依赖包的安装后,我们终于来到了最关键的编译阶段。在开始编译之前,有一些重要的配置信息需要了解。本文将指导您完成整个编译过程。 2. 签名相关说明 虽然在我们的测试编译中不需要进行签名操作,但了解官方的签名要求仍…

Linux (CentOS) 安装 Docker 和 Docker Compose

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template 🌺 仓库主页: GitCode︱ Gitee ︱ Github 💖 欢迎点赞 👍 收藏 ⭐评论 …

【广西乡镇界】arcgis格式shp数据乡镇名称和编码2020年内容测评

【广西乡镇界】arcgis格式shp数据乡镇名称和编码2020年内容测评

MongoTemplate 性能优化指南

MongoTemplate 性能优化指南 1. 查询优化 1.1 合理使用索引 为经常查询的字段创建索引使用复合索引优化多字段查询避免使用无索引的排序操作 // 创建索引示例 mongoTemplate.indexOps(Collection.class).ensureIndex(new Index().on("field1", Sort.Direction.AS…

HTML语言的数据库编程

HTML语言的数据库编程概述 引言 在当前的信息时代,数据是决策和运营的核心。几乎所有的应用程序都涉及到数据的存储、检索和处理。虽然HTML(超文本标记语言)本身并不能直接用于数据库编程,但它在Web开发中占据了重要的地位。通过…

AI人工智能领域常见名词缩写

1.Numpy NumPy是“Numerical Python”的缩写。这里“Numerical” 指的是数值计算,而 “Python” 则是这种数值计算所基于的编程语言。 2.ndarray ndarray是 “N-dimensional array”,即 N 维数组。这里的 “nd” 是 “N-dimensional” 的缩写&#xf…

计算机网络八股文学习笔记

文章目录 计算机网络基础网络分层模型OSI七层模型TCP/IP四层模型 HTTP从输入URL到页面展示到底发生了什么?(非常重要)HTTP状态码HTTP Header中常见的字段有哪些?HTTP和HTTPS有什么区别?(重要)HTTP/1.0和HTTP/1.1有什么区别?HTTP/1.1和HTTP/2.0有什么区别?HTTP/2.0和HTTP/3…