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

一文入门 matplotlib:从基础图表到数据可视化初体验

一、matplotlib 的 "Hello World"

使用 matplotlib 绘图,通常需要导入两个库:matplotlib.pyplot(绘图核心)和numpy(数据处理)。最简单的折线图代码如下:

python

import matplotlib.pyplot as plt
import numpy as np# 准备数据
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])# 绘制折线图并显示
plt.plot(x, y)
plt.show()

这几行代码完成了 "数据→绘图→显示" 的完整流程,是所有复杂图表的基础。

二、常见图表类型及适用场景

matplotlib 支持多种图表类型,不同图表适合展示不同数据:

  • 折线图:用plt.plot()绘制,适合展示数据随时间或连续变量的变化趋势,比如温度变化、股票走势。

  • 柱状图 / 水平柱状图:分别用plt.bar()plt.barh(),适合对比不同类别的数据,比如各平台商品价格、不同班级的成绩分布。

  • 散点图:用plt.scatter(),用于观察两个变量的相关性,比如身高与体重的关系、广告投入与销量的关联。

  • 饼图:用plt.pie(),适合展示各部分占总体的比例,比如班级学生的兴趣分布、公司各部门的人员占比。

  • 直方图:用plt.hist(),用于展示数据的分布情况,比如学生成绩的分数段分布、零件尺寸的误差范围。

三、让图表更 "懂人话" 的技巧

绘制出图表后,添加必要的说明能让读者更快理解数据:

  1. 标签与标题:用plt.xlabel()plt.ylabel()标注坐标轴,plt.title()添加标题,明确图表主题。

  2. 图例:在plot()等函数中设置label参数,再用plt.legend()显示,区分多组数据。

  3. 网格线plt.grid()可以添加网格,让数据读取更方便,还能通过参数调整颜色和样式。

  4. 中文显示:默认情况下 matplotlib 可能无法显示中文,只需一行代码设置字体:

    python

    plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
    

四、从基础到进阶:子图与样式定制

当需要对比多组数据时,子图(subplot)是实用工具,它能在一张图中展示多个图表:

python

# 1行2列布局,绘制两个子图
plt.subplot(1, 2, 1)  # 定位第一个子图
plt.plot([1, 2, 3], [2, 4, 6])plt.subplot(1, 2, 2)  # 定位第二个子图
plt.scatter([1, 2, 3], [2, 4, 6])plt.show()

此外,通过调整颜色(color)、线条样式(linestyle)、标记点(marker)等参数,可以让图表更符合需求,比如用红色虚线突出重要数据趋势。

五、总结

matplotlib 的核心逻辑是 "先准备数据,再调用绘图函数,最后添加辅助信息并显示"。从简单的折线图到复杂的多子图布局,掌握这些基础用法后,就能应对大部分日常数据可视化需求。

后续可以尝试结合 pandas 处理真实数据集,或探索 seaborn 等基于 matplotlib 的高级库,让可视化效果更上一层楼。

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

相关文章:

  • git branch -a无法查看最新的分支
  • CNB私有化部署Dify(零成本)教程
  • 操作系统1.4:操作系统的体系结构
  • ollama 运行gpt-oss 系列教程
  • Numpy科学计算与数据分析:Numpy数组创建与应用入门
  • DevOps简单教程应用
  • ⭐CVPR2025 RoboBrain:机器人操作的统一大脑模型[特殊字符]
  • Redis(八):Redis高并发高可用(哨兵Sentinel)
  • 上海一家机器人IPO核心零部件依赖外购, 募投计划频繁修改引疑
  • QDataStream入门
  • Redis实战(8) -- 分布式锁Redission底层机制
  • 如何解决用阿里云效流水线持续集成部署Nuxt静态应用时流程卡住,进行不下去的问题
  • 基于 MATLAB 的 QPSK 调制、解调、通过高斯信道的误码率计算,并绘制误码率图和眼图、星座图
  • 火山引擎接入豆包AI(纯前端调用api的方式)
  • Java 大视界 -- Java 大数据在智能教育在线课程互动优化与学习体验提升中的应用(386)
  • E频段芯片解决方案
  • npm 与 npx 区别详解。以及mcp中npx加载原理。
  • 2025年生成式大模型部署与推理优化全景解析
  • 14天搞定Excel公式:告别加班,效率翻倍!
  • 【YOLOv8改进 - 上采样】EUCB:(Efficient Up-convolution Block,高效上卷积块)实现特征图尺度匹配和高效上采样
  • 网络编程基石:域名系统与默认端口号详解
  • 文章采集发布Destoon网站技巧
  • C语言函数与预编译:模块化编程的精髓
  • 【AI论文】细胞锻造(CellForge):虚拟细胞模型的智能体化设计
  • 上岸AAAI 2025:自适应框架+前沿算法,顶会热点方向
  • 【VLLM篇】:原理-实现
  • 【论文阅读】基于元模型的体系知识图谱构建
  • spring boot学习计划
  • 什么是AI Agents
  • 机器学习算法篇(四)决策树算法