Python第十四课:数据可视化 | 信息炼金术

🎯 本节目标

  • 掌握Matplotlib基础图表绘制
  • 理解Seaborn高级统计可视化
  • 学会使用Pyecharts制作交互式图表
  • 开发实战项目:疫情数据动态仪表盘
  • 掌握可视化设计原则与优化技巧

1️⃣ 可视化工具全景图


📊 生活化比喻:

  • Matplotlib → 手工雕刻刀(精细但需技巧)
  • Seaborn → 智能雕刻机(快速成型)
  • Pyecharts → 全息投影仪(动态交互)

2️⃣ Matplotlib基础:从折线到热力图

📈 折线图与柱状图

python 复制代码
import matplotlib.pyplot as plt  
import numpy as np  

x = np.arange(2020, 2024)  
y = [120, 135, 98, 156]  

plt.figure(figsize=(10,6))  
plt.plot(x, y, marker='o', linestyle='--', color='#2c7fb8', label='销售额')  
plt.bar(x, y, alpha=0.3, color='#7fcdbb')  
plt.title('年度销售趋势', fontsize=14)  
plt.xlabel('年份')  
plt.ylabel('金额(万元)')  
plt.legend()  
plt.grid(True, linestyle=':')  
plt.show()  

3️⃣ Pyecharts交互魔法:疫情地图

🌍 动态疫情地图

python 复制代码
from pyecharts.charts import Map  
from pyecharts import options as opts  

# 模拟数据  
province_data = [("湖北", 68900), ("广东", 2450), ("北京", 1200)]  

map_chart = (  
    Map()  
    .add("累计确诊", province_data, "china")  
    .set_global_opts(  
        title_opts=opts.TitleOpts(title="全国疫情分布"),  
        visualmap_opts=opts.VisualMapOpts(  
            max_=70000,  
            is_piecewise=True,  
            range_color=["#FFE4E1", "#FF6347", "#8B0000"]  
        )  
    )  
)  
map_chart.render("covid_map.html")  

🚀 交互特性:

  • 鼠标悬停显示数值
  • 缩放查看区域细节
  • 颜色区间分段显示

4️⃣ 实战项目:疫情数据仪表盘

📦 数据准备:

python 复制代码
import pandas as pd  

# 从CSV加载数据(示例数据集)  
df = pd.read_csv("covid_data.csv")  
df['date'] = pd.to_datetime(df['date'])  

# 处理数据  
daily_new = df.groupby('date')['confirmed'].sum().reset_index()  

📊 多图表联动仪表盘:

python 复制代码
from pyecharts.charts import Line, Grid  

# 折线图  
line = (  
    Line()  
    .add_xaxis(daily_new['date'].dt.strftime('%Y-%m-%d').tolist())  
    .add_yaxis("新增确诊", daily_new['confirmed'].tolist())  
    .set_global_opts(title_opts=opts.TitleOpts(title="每日新增趋势"))  
)  

# 组合仪表盘  
dashboard = Grid()  
dashboard.add(line, grid_opts=opts.GridOpts(pos_left="5%", pos_right="5%"))  
dashboard.render("covid_dashboard.html")  

📚 知识图谱

python 复制代码
可视化设计黄金法则:
┌───────────────┬───────────────────────────┐  
|   原则        |          实施方法          |  
├───────────────┼───────────────────────────┤  
| 简洁性        | 每图传达一个核心信息         |  
| 一致性        | 统一配色与字体风格           |  
| 对比性        | 关键数据使用突出颜色         |  
| 真实性        | 避免扭曲数据的可视化技巧      |  
└───────────────┴───────────────────────────┘  

图表类型选择指南:
| 分析目标       | 推荐图表                  |  
|----------------|--------------------------|  
| 趋势分析       | 折线图/面积图             |  
| 分布分析       | 直方图/箱线图             |  
| 关联分析       | 散点图/热力图             |  
| 构成分析       | 饼图/旭日图               |  
| 地理分析       | 地图/流向图               |  

🛠️ 课后挑战

  1. 使用Seaborn绘制确诊病例与死亡数的相关性矩阵
  2. 为疫情仪表盘添加疫苗接种进度柱状图
  3. 用Plotly实现3D曲面预测模型可视化

💡 参考答案提示

python 复制代码
# Seaborn相关性热力图  
import seaborn as sns  
corr_matrix = df[['confirmed', 'deaths', 'recovered']].corr()  
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')  

🚀 下节剧透:《机器学习入门:从猜想到预测》

👉 你将解锁:

  • 监督学习与无监督学习分界
  • 特征工程的核心方法论
  • 经典算法实现(线性回归/K-Means)
  • 实战:房价预测模型构建
📢 互动任务:在评论区提交你的可视化作品截图
相关推荐
烟花落o3 分钟前
指针深入第二弹--字符指针、数组指针、函数指针、函数指针数组、转移表的理解加运用
c语言·开发语言·笔记·vscode·算法
熊猫_豆豆4 分钟前
嫦娥号地月轨道、环月(一个月)MATLAB仿真
开发语言·matlab
wjs20244 分钟前
MongoDB Java:深入解析与应用实践
开发语言
散峰而望10 分钟前
基本魔法语言数组 (二) (C语言)
c语言·开发语言·github·visual studio
程序员爱钓鱼39 分钟前
Python编程实战—面向对象与进阶语法 | 属性与方法
后端·python·ipython
程序员爱钓鱼43 分钟前
Python编程实战——面向对象与进阶语法 | 构造函数与析构函数
后端·python·ipython
逻极1 小时前
Rust之结构体(Structs):构建自定义数据类型
开发语言·后端·rust
小二·1 小时前
深入解析 Rust 并行迭代器:Rayon 库的原理与高性能实践
开发语言·算法·rust
四念处茫茫1 小时前
Rust:复合类型(元组、数组)
开发语言·后端·rust
初见无风1 小时前
3.3 Lua代码中的协程
开发语言·lua·lua5.4