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

Matplotlib数据可视化实战:Matplotlib数据可视化入门与实践

数据可视化案例:Matplotlib入门教程

学习目标

通过本课程的学习,学员将掌握如何使用Matplotlib库进行数据可视化,包括时间序列数据和分类数据的图表制作。实验将通过实际案例,帮助学员理解Matplotlib的基本功能和高级特性,能够独立完成复杂数据的可视化工作。

相关知识点

  • Matplotlib库数据可视化

学习内容

1 Matplotlib库数据可视化

1.1 Matplotlib基础

Matplotlib是一个强大的Python绘图库,它能够生成多种静态、动态、交互式的图表。Matplotlib的设计灵感来源于MATLAB,因此对于熟悉MATLAB的学员来说,Matplotlib的学习曲线相对平缓。Matplotlib的核心是pyplot模块,它提供了一套类似于MATLAB的绘图API,使得绘图过程更加直观和简单。

1.1.1安装Matplotlib

在开始之前,确保Python环境中已经安装了Matplotlib。如果还没有安装,可以通过pip命令进行安装:

%pip install matplotlib
!wget https://model-community-picture.obs.cn-north-4.myhuaweicloud.com/ascend-zone/notebook_datasets/2096e240309511f0ac72fa163edcddae/stock_prices.csv
1.1.2基本绘图

从一个简单的例子开始,绘制一条直线。这将帮助学员熟悉Matplotlib的基本使用方法。

import matplotlib.pyplot as plt# 数据
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]# 创建图表
plt.plot(x, y)# 添加标题和标签
plt.title('Simple Line Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')# 显示图表
plt.show()

在这里插入图片描述
在这个例子中,学员首先导入了matplotlib.pyplot模块,并使用plot函数绘制了一条直线。plot函数接受两个列表作为参数,分别表示x轴和y轴的数据。接着,学员使用titlexlabelylabel函数为图表添加了标题和轴标签。最后,通过show函数显示图表。

1.1.3 自定义图表

Matplotlib提供了丰富的自定义选项,可以让学员的图表更加美观和专业。例如,学员可以改变线条的颜色、宽度、样式等。

import matplotlib.pyplot as plt# 数据
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]# 创建图表
plt.plot(x, y, color='red', linewidth=2, linestyle='--', marker='o', markersize=10)# 添加标题和标签
plt.title('Customized Line Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')# 显示图表
plt.show()

在这里插入图片描述
在这个例子中,通过colorlinewidthlinestylemarkermarkersize参数对线条进行了自定义。color参数用于设置线条颜色,linewidth参数用于设置线条宽度,linestyle参数用于设置线条样式,marker参数用于设置数据点的标记样式,markersize参数用于设置标记的大小。

1.2 时间序列数据可视化

时间序列数据是指按照时间顺序记录的数据,例如股票价格、天气数据等。Matplotlib提供了多种方法来处理和可视化时间序列数据。

1.2.1 绘制时间序列数据

假设学员有一组股票价格数据,记录了某只股票在过去一年的每日收盘价。学员可以使用Matplotlib来绘制这些数据,以便更好地分析股票价格的变化趋势。

import matplotlib.pyplot as plt
import pandas as pd# 读取数据
data = pd.read_csv('./stock_prices.csv', parse_dates=['Date'])
data.set_index('Date', inplace=True)# 绘制时间序列数据
plt.figure(figsize=(10, 5))
plt.plot(data['Close'], label='Stock Price')# 添加标题和标签
plt.title('Stock Price Over Time')
plt.xlabel('Date')
plt.ylabel('Price (USD)')# 添加图例
plt.legend()# 显示图表
plt.show()

在这里插入图片描述
在这个例子中,学员首先使用Pandas库读取了一个包含股票价格数据的CSV文件,并将日期列设置为索引。然后,学员使用plot函数绘制了股票价格的时间序列图。figure函数用于设置图表的大小,legend函数用于添加图例。

1.2.2 添加注释和标记

在时间序列图中,有时需要添加注释或标记来突出显示某些重要的时间点或事件。Matplotlib提供了annotate函数来实现这一功能。
在这个例子中,使用annotate函数在图表中添加了一个注释。xy参数用于指定注释的位置,xytext参数用于指定注释文本的位置,arrowprops参数用于设置箭头的样式。

1.3 分类数据可视化

分类数据是指数据可以分为不同的类别,例如性别、职业等。Matplotlib提供了多种图表类型来可视化分类数据,包括条形图、饼图等。

1.3.1 绘制条形图

条形图是一种常用的图表类型,用于比较不同类别的数据。假设学员有一组销售数据,记录了不同产品的销售额,学员可以使用条形图来比较这些产品的销售情况。
在这里插入图片描述
在这个例子中,使用bar函数绘制了一个条形图。bar函数接受两个列表作为参数,分别表示类别和对应的数值。还通过color参数为每个条形设置了不同的颜色。

1.3.2 绘制饼图

饼图是一种用于显示数据比例的图表类型。假设学员有一组市场份额数据,记录了不同公司的市场份额,学员可以使用饼图来显示这些公司的市场份额。

import matplotlib.pyplot as plt# 数据
companies = ['Company A', 'Company B', 'Company C', 'Company D']
market_shares = [30, 25, 20, 25]# 绘制饼图
plt.pie(market_shares, labels=companies, autopct='%1.1f%%', startangle=140)# 添加标题
plt.title('Market Share by Company')# 显示图表
plt.show()

在这里插入图片描述
在这个例子中,使用pie函数绘制了一个饼图。pie函数接受两个列表作为参数,分别表示类别和对应的数值。autopct参数用于显示每个扇区的百分比,startangle参数用于设置饼图的起始角度。

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

相关文章:

  • golang实现的Rsa加密解密算法(go和java交互时双向加解密方案)
  • OpenCV 形态学操作详解:腐蚀、膨胀与开闭运算
  • Chrome/360 浏览器 WebUI 资源底层机制解析:共享资源与专属资源的奥秘
  • 一、部署LNMP
  • mac的m3芯片安装JDK8、JDK17
  • 【CDA干货】金融App产品AB测试与指标体系搭建
  • 数据结构之排序大全(3)
  • 31、工业网络异常行为检测与OT协议深度分析 (核电站DCS模拟) - /安全与维护组件/network-anomaly-detection-nuclear
  • “码” 上安全:轻量级加密的硬件实现与侧信道攻击防御
  • Java实现一个简单的LRU缓存对象
  • 【SpringBoot】16 核心功能 - Web开发原理 - 请求参数 - 源码分析
  • WindowsAPI|每天了解几个winAPI接口之网络配置相关文档Iphlpapi.h详细分析七
  • 如何快速上手【Spring AOP】?从动态代理到源码剖析(下篇)
  • CTFshow系列——命令执行web41-44
  • YOLOv8 原理与跨领域应用全景分析
  • CVPR | 2025 | MAP:通过掩码自回归预训练释放混合 Mamba - Transformer 视觉骨干网络的潜力
  • 【C++】仿函数和回调函数
  • Python数值取整完全指南:从基础到金融工程实践
  • uniapp实现分页,效果如图
  • 自然语言处理——04 注意力机制
  • npm全局安装后,cmd命令行可以访问,vscode访问报错
  • HTTP 403 错误:后端权限校验机制深度解析
  • 长尾关键词优化SEO核心策略
  • JeeSite 快速开发平台:全能企业级快速开发解决方案
  • 自己动手,在Mac开发机上利用ollama部署一款轻量级的大模型Phi-3:mini
  • ElasticSearch——常用命令
  • VSCode Import Cost:5 分钟学会依赖瘦身
  • java16学习笔记
  • uniapp 全局弹窗
  • 力扣1005:k次取反后最大化的数组和