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

Python数据可视化利器:Matplotlib全解析

matplotlib介绍


Matplotlib 是 Python 中最流行的数据可视化库之一,广泛用于生成高质量的静态、动态和交互式图表。它提供了类似 MATLAB 的绘图接口,支持多种图表类型,包括折线图、散点图、柱状图、等高线图和 3D 图形等。

matplotlib核心组成

  1. Figure:画布,所有图表元素的容器。
  2. Axes:坐标系,包含坐标轴、标签、标题等,用于绘制具体图表。
  3. Axis:坐标轴,控制刻度、标签和网格线。
  4. Artist:所有可见元素的基类,如文本、线条、图像等

matplotlib安装方法

通过 pip 安装最新版本:

pip install matplotlib

常用图表类型

  1. 折线图plt.plot()
  2. 散点图plt.scatter()
  3. 柱状图plt.bar()
  4. 直方图plt.hist()
  5. 饼图plt.pie()

高级功能

  • 子图布局:通过 plt.subplots() 创建多子图。
  • 样式定制:使用 plt.style.use() 切换预定义样式(如 ggplotseaborn)。
  • 3D 绘图:导入 mpl_toolkits.mplot3d 模块绘制三维图形。

功能方法

折现图

import matplotlib.pyplot as plt
import numpy as np# 设置字体为 SimHei(黑体)
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决负号显示为方块的问题
plt.rcParams['axes.unicode_minus'] = Falsex = np.array([0, 1, 2, 3, 4])
y = np.array([0, 1, 4, 9, 16])plt.plot(x, y)
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
plt.title('折线图示例')
plt.show()

输出

注意如果我们图中有文字的话,要加一段代码

# 设置字体为 SimHei(黑体)
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决负号显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False

不然文字可能会无法显示

散点图

import matplotlib.pyplot as plt
import numpy as np# 设置字体为 SimHei(黑体)
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决负号显示为方块的问题
plt.rcParams['axes.unicode_minus'] = Falsex = np.array([0, 1, 2, 3, 4])
y = np.array([0, 1, 4, 9, 16])plt.scatter(x,y)
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
plt.title('散点图实例')
plt.show()

输出

 plt.subplots() 方法

import matplotlib.pyplot as plt
import numpy as np# 创建2x2子图布局
fig, axs = plt.subplots(2, 2, figsize=(10, 8))  # figsize控制画布大小
x = np.linspace(0, 10, 100)# 在每个子图绘制不同图像
axs[0, 0].plot(x, np.sin(x))  # 第一行第一列
axs[0, 0].set_title('Sine Wave')
axs[0, 1].scatter(x, np.cos(x), color='red')  # 第一行第二列
axs[1, 0].bar([1, 2, 3], [3, 7, 2])  # 第二行第一列
axs[1, 1].pie([15, 30, 45], labels=['A', 'B', 'C'])  # 第二行第二列plt.tight_layout()  # 自动调整子图间距
plt.show()

 上面,我们一个画布上展现了四张图片,并且其中包含了饼图,柱形图,散点图,线图。并且还展示了如歌调换颜色。

3D图像

import numpy as np
import matplotlib.pyplot as plt# 生成随机数据
np.random.seed(42)
n = 100
x = np.random.rand(n) * 10
y = np.random.rand(n) * 5
z = np.sin(x) + np.cos(y) + np.random.normal(0, 0.2, n)# 创建3D图形
fig = plt.figure(figsize=(10, 8))
fig = plt.axes(projection="3d")# 绘制散点图(颜色映射和大小渐变)
scatter = fig.scatter(x, y, z, c=z, cmap='viridis', s=50*(z-z.min()+1), alpha=0.8)# 添加颜色条# 设置标签和标题
fig.set(xlabel='X Axis', ylabel='Y Axis', zlabel='Z Axis',title='3D Scatter Plot with Color Gradient')
plt.show()

 这样我们就完成了一个3d图像的绘制

http://www.dtcms.com/a/297900.html

相关文章:

  • 智能制造——解读39页MOM数字化工厂平台解决方案【附全文阅读】
  • Linux网络配置全攻略:IP、路由与双机通信
  • 北京-4年功能测试2年空窗-报培训班学测开-第六十天-准备项目中
  • 图的遍历:深度优先与广度优先
  • SpringBoot学习路径二--Spring Boot自动配置原理深度解析
  • Qt 状态机框架:复杂交互逻辑的处理
  • R 语言绘制六种精美热图:转录组数据可视化实践(基于 pheatmap 包)
  • 从零开始学习Dify-数据库数据可视化(五)
  • java的设计模式及代理模式
  • 负载均衡:提升业务性能的关键技术
  • Zabbix告警系统集成指南:从钉钉机器人到网易邮件的全流程配置
  • pytest-html 优势及与其他插件对比
  • 自动驾驶领域中的Python机器学习
  • VLA:自动驾驶的“新大脑”?
  • npm init vite-app runoob-vue3-test2 ,npm init vue@latest,指令区别
  • C语言第 9 天学习笔记:数组(二维数组与字符数组)
  • Java-Properties类和properties文件详解
  • 同声传译新突破!字节跳动发布 Seed LiveInterpret 2.0
  • 深入探索嵌入式仿真教学:以酒精测试仪实验为例的高效学习实践
  • C++常见面试题之一
  • win11平台上mysql 数据库迁移
  • 【C#补全计划:类和对象(七)—— 重写虚方法】
  • CMOS知识点 双阱工艺 三阱工艺
  • 大数据中心——解读60页IDC云数据中心机房运维服务解决方案【附全文阅读】
  • 【优选算法】链表
  • 2025.7.25 测试 总结
  • C/C++---I/O性能优化
  • ISAAC ROS 在Jetson Orin NX上的部署
  • 自动化UI测试工具TestComplete的AI双引擎:即时数据集 + 自愈测试
  • BGP负载均衡-9