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

devtools/2025/1/12 4:09:12/

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/devtools/149776.html

相关文章

T-SQL语言的网络编程

T-SQL语言的网络编程探索 引言 随着互联网的快速发展,数据的存储与管理变得愈发重要。尤其是在面向服务的架构(SOA)以及微服务架构中,数据库的作用愈加凸显。在这种背景下,T-SQL(Transact-SQL&#xff09…

T-SQL语言的编程范式

T-SQL编程范式探析 引言 随着信息技术的迅猛发展,数据库在各个行业的应用日益广泛。在众多数据库管理系统中,SQL Server以其高性能和易用性受到广泛欢迎。T-SQL(Transact-SQL)是SQL Server的扩展版本,是一种用于查询…

基于Spring Boot的健康饮食管理系统

一、系统架构与技术栈 系统架构:系统通常采用典型的三层架构设计,分为表现层、业务逻辑层和数据访问层。表现层负责与用户进行交互,展示信息和接收用户输入;业务逻辑层处理系统的核心业务,如用户信息管理、饮食记录分…

Flutter路由动画Hero函数的使用

Hero用于实现两个页面切换的过渡效果 以下示例:展示的是HeroPage切换到Hero2Page过程中 图片平滑放大的过程 Hero函数有两个重要的参数 tag:标识两个路由切换的共享参数,因为是HeroPage到Hero2Page切换,这里指定tag是tag1 chl…

【大模型 RAG技术】Elasticsearch (ES) 构建一个基于 RAG问答系统

要利用 Elasticsearch (ES) 构建一个基于 RAG(Retrieval-Augmented Generation)的应用,你可以按照以下步骤进行: 1. 准备数据 首先,你需要将 result.txt 文件中的数据转换为适合 Elasticsearch 的格式。假设你的数据…

c++入门之 命名空间与输入输出

1、命名空间 1.1使用命名空间的原因 先看一个例子&#xff1a; #include <iostream>int round 0;int main() {printf("%d", round);return 0; }请问&#xff0c;这个程序能跑起来吗&#xff1f; 答案是否定的 原因是&#xff0c;当我们想创建一个全局变量 …

Linux下常用的IO模型

Linux下常用的IO模型&#xff1a; 1. 阻塞IO fgets read getchar fread fgetc recv recvfrom 1. 让多个IO事件以同步方式处理&#xff0c; 2. 多个IO事件之间互相影响 3. CPU占有率低 2. 非阻塞IO 将IO对应的文件描述符设置成…

如何学习Vue设计模式

如何学习Vue设计模式 Vue 设计模式是 Vue.js 框架中用于解决常见问题的可复用解决方案。这些模式帮助开发者更有效地组织和管理代码&#xff0c;提升代码的可维护性、可扩展性和可读性。以下是一些常见的 Vue 设计模式&#xff1a; 1. 数据存储模式 可组合函数&#xff1a;用…