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

一文入门 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.xdnf.cn/news/17322.html

相关文章:

  • HTTP 协议升级(HTTP Upgrade)机制
  • 力扣300:最长递增子序列
  • Java 八大经典排序算法全解析
  • 小米前端笔试和面试
  • 【Unity Plugins】使用Magica Cloth 2 实现头发和服饰的效果模拟
  • 玳瑁的嵌入式日记D14-0807(C语言)
  • DoubleTrouble靶机
  • QT的拖拽功能
  • 指针——练习
  • 一文解读“Performance面板”前端性能优化工具基础用法!
  • 数字孪生系统让汽车工厂虚实联动预测维护少停机
  • S7-1200 串行通信介绍
  • Android-Kotlin基础(Jetpack③-LiveData)
  • 连续最高天数的销售额(动态规划)
  • Pytest项目_day07(pytest)
  • 《C语言》函数练习题--2
  • Android 之 Jetpack WorkManager
  • 突破距离桎梏:5G 高清视频终端如何延伸无人机图传边界
  • 无人机光伏巡检效率提升68%!陌讯动态融合算法实战解析
  • Shuffle SOAR使用学习经验
  • ElasticSearch相关术语介绍
  • 亚远景-ISO 42001:汽车AI安全的行业标准新趋势
  • 华为开源CANN,再次释放“昇腾转向”信号
  • vue3对比vue2的性能优化和提升 :Vue 3 vs Vue 2
  • Java的异常体系
  • hadoop HDFS 重置详细步骤
  • ReAct Agent 原生代码实现(纯Python实现)
  • 【指南版】网络与信息安全岗位系列(三):安全运维工程师
  • 前端技术架构设计文档(Vue2+Antd+Sass)
  • 关于AI应用案例计算机视觉、自然语言处理、推荐系统和生成式AI四大领域的详细技术分析。