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

【数据可视化实战】用Matplotlib绘制动态疫情趋势图:从数据到故事

一、项目背景与目标

在《数据可视化》课程中,我们学习了如何将枯燥的数据转化为直观的图表。本次实战项目,我将使用Python的Matplotlib库,结合真实疫情数据(模拟),绘制一个随时间变化的动态折线图,展示多个地区的疫情趋势对比。

通过这个项目,你将学会:

  • 如何使用Matplotlib绘制动态图表

  • 如何美化图表,增强可读性

  • 如何将数据故事化,提升可视化表达力

二、环境准备与数据模拟

我们使用以下库:

  • matplotlib用于绘图

  • numpy用于生成模拟数据

  • pandas用于数据处理

为了模拟真实数据,我生成了2023年1月至12月三个地区(北京、上海、广州)的每月新增确诊数据:

import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation # 生成模拟数据 months = np.arange(1, 13) beijing = np.random.randint(50, 200, size=12) shanghai = np.random.randint(30, 180, size=12) guangzhou = np.random.randint(20, 150, size=12) df = pd.DataFrame({ 'Month': months, 'Beijing': beijing, 'Shanghai': shanghai, 'Guangzhou': guangzhou }) print(df.head())

三、绘制静态趋势图

在绘制动态图之前,我们先绘制一张静态的多线图,用于对比三个地区的趋势:

plt.figure(figsize=(10, 6)) plt.plot(df['Month'], df['Beijing'], marker='o', label='Beijing', linewidth=2) plt.plot(df['Month'], df['Shanghai'], marker='s', label='Shanghai', linewidth=2) plt.plot(df['Month'], df['Guangzhou'], marker='^', label='Guangzhou', linewidth=2) plt.title('Monthly New Cases in Three Cities (2023)', fontsize=16, fontweight='bold') plt.xlabel('Month', fontsize=12) plt.ylabel('New Cases', fontsize=12) plt.legend() plt.grid(True, linestyle='--', alpha=0.6) plt.xticks(df['Month']) plt.tight_layout() plt.savefig('static_trend.png', dpi=300) plt.show()

https://via.placeholder.com/800x400/4CAF50/FFFFFF?text=Static+Chart+Example
(此处为示意图,实际运行时将生成真实图表)

四、进阶:绘制动态趋势图

接下来是本次项目的核心:动态绘制每条折线的增长过程。我们将使用Matplotlib的动画模块:

fig, ax = plt.subplots(figsize=(10, 6)) ax.set_xlim(1, 12) ax.set_ylim(0, 250) ax.set_title('Dynamic Trend of New Cases (2023)', fontsize=16, fontweight='bold') ax.set_xlabel('Month') ax.set_ylabel('New Cases') ax.grid(True, linestyle='--', alpha=0.6) lines = [] colors = ['#FF6B6B', '#4ECDC4', '#45B7D1'] labels = ['Beijing', 'Shanghai', 'Guangzhou'] for i, col in enumerate(['Beijing', 'Shanghai', 'Guangzhou']): line, = ax.plot([], [], marker='o', color=colors[i], label=labels[i], linewidth=2) lines.append(line) def init(): for line in lines: line.set_data([], []) return lines def update(frame): for i, col in enumerate(['Beijing', 'Shanghai', 'Guangzhou']): lines[i].set_data(df['Month'][:frame+1], df[col][:frame+1]) ax.legend() return lines ani = FuncAnimation(fig, update, frames=len(df), init_func=init, blit=True, interval=500) plt.tight_layout() ani.save('dynamic_trend.gif', writer='pillow') plt.show()

https://via.placeholder.com/800x400/2196F3/FFFFFF?text=Dynamic+GIF+Example
(实际运行动画将保存为GIF文件)

五、可视化优化与故事表达

5.1 为什么选择动态图表?

静态图表适合呈现完整趋势,而动态图表能更好地展示时间序列的变化过程,增强叙事感。尤其在数据汇报或教学演示中,动态图表更能吸引注意力。

5.2 美化建议

  • 颜色选择:使用对比明显且舒适的色系(如我使用的三种色调)

  • 标签与标题:标题要简洁有力,坐标轴标签要清晰

  • 图例位置:避免遮挡数据,通常放在右上角或下方

  • 网格线:使用浅色虚线,增强可读性但不喧宾夺主

5.3 数据故事化

在博客或报告中,可以这样描述:

“从动态图中可以看出,北京在春季(3-4月)出现一波小高峰,随后趋于平稳;上海整体波动较小;广州则在夏季(7-8月)有所上升。整体来看,三地疫情趋势均呈波动下降态势。”


六、总结与心得

通过本次实战,我深刻体会到数据可视化不仅是“画图”,更是“讲故事”。Matplotlib虽然入门简单,但其动态功能、样式配置都非常强大,适合做科研、教学、汇报等多种场景的可视化。

如果你也想快速上手数据可视化,推荐以下资源:

  • Matplotlib官方教程

  • Python数据可视化实战案例合集(GitHub)

  • 课程教材:《Python数据可视化之美》(张杰著)


七、完整代码与数据

你可以在我的GitHub仓库中获取本次项目的完整代码、模拟数据与生成图表
🔗 https://github.com/lzzy-yc-3181/DataViz-Dynamic-Trend

http://www.zskr.cn/news/174798.html

相关文章:

  • GitHub Actions自动构建PyTorch镜像
  • DiskInfo对比不同SSD读写速度:选型参考
  • 科学家就在超级电脑里创造个人类文明看看他们能不能打破瓶颈无限套娃
  • Jupyter Notebook扩展插件推荐:提升PyTorch编码效率
  • 国内最专业的GEO优化公司究竟哪家强?深度测评揭秘行业标杆 - 品牌测评鉴赏家
  • Vue3基于Java的网上药店商城进销存管理系统(编号:74484357)
  • PyTorch模型序列化保存与加载:避免常见陷阱
  • PyTorch-CUDA-v2.7镜像在远程医疗诊断中的潜力
  • 计算机毕业设计springboot高校大学生校园商品销售配送系统 基于SpringBoot的校园即时零售与跑腿配送平台 SpringBoot+Vue高校学生社区电商物流一体化系统
  • PyTorch-CUDA-v2.7镜像在智能家居中枢的应用
  • Uniform Manifold Approximation and Projection(UMAP)详解
  • 2025联网门禁推荐厂家TOP5:宿舍与大学场景优质生产商深度测评 - mypinpai
  • python闪送外卖订餐系统vue骑手 商家echart
  • GitHub Issues高效提问指南:关于PyTorch的问题这样问
  • 2025杭州GEO优化口碑榜:可靠厂家深度解析,GEO优化/GEO服务/GEO优化AI工具排名/GEO优化服务GEO优化公司有哪些 - 品牌推荐师
  • 2025年终天津GEO优化公司推荐:聚焦垂直行业案例的5强榜单盘点 - 十大品牌推荐
  • 衡水优秀的金包银店推荐排行榜
  • PyTorch-CUDA-v2.7镜像更新日志:新增对RTX 50系列支持
  • 2025年室外游泳池漆行业品牌推荐:靠谱品牌有哪些? - 工业品网
  • 2025年消防考证培训机构排名:消防考证培训机构哪家靠谱? - 工业推荐榜
  • NVIDIA多卡并行训练配置指南:PyTorch分布式入门教程
  • 基于springboot的记账微信小程序的设计与实现毕设
  • python基于联盟链的农产品农药商城溯源系统vue
  • 2025年上海评价高的装修设计厂家推荐,法式新房装修/奶油风房屋设计/现代简约室内装修,装修设计工作室找哪家 - 品牌推荐师
  • 2025年热门的打浆机高箱款/打浆机折叠款厂家推荐及选择指南 - 品牌宣传支持者
  • CNN图像分类实战:基于PyTorch-CUDA-v2.7镜像快速上手
  • 2025年华东化工海水淡化系统设备源头厂家推荐 - 工业设备
  • 2025年靠谱泳池专用漆品牌排行榜,新测评精选游泳池漆公司推荐 - 工业品网
  • 网络安全完全指南:从小白到黑客必学的10大防范技术(建议收藏)
  • 2025年比较好的短视频推广运营公司/工厂短视频推广行业领先榜单 - 品牌宣传支持者