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

发布于:2025-03-07 ⋅ 阅读:(17) ⋅ 点赞:(0)

🎯 本节目标

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

1️⃣ 可视化工具全景图

在这里插入图片描述
📊 生活化比喻:

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

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

📈 折线图与柱状图

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交互魔法:疫情地图

🌍 动态疫情地图

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️⃣ 实战项目:疫情数据仪表盘

📦 数据准备:

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()  

📊 多图表联动仪表盘:

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")  

📚 知识图谱

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

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

🛠️ 课后挑战

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

💡 参考答案提示

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

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

👉 你将解锁:

  • 监督学习与无监督学习分界
  • 特征工程的核心方法论
  • 经典算法实现(线性回归/K-Means)
  • 实战:房价预测模型构建
📢 互动任务:在评论区提交你的可视化作品截图