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)
  • 实战:房价预测模型构建
📢 互动任务:在评论区提交你的可视化作品截图
相关推荐
kruptos10 小时前
分布式系统怎么“选主“?Raft 共识一次讲清
开发语言·分布式·php·共识算法
吴声子夜歌10 小时前
ApacheCommons——commons-cli(命令行参数解析)
java·开发语言·apache
benchmark_cc11 小时前
REST API 和 Python SDK 应该怎么选?量化交易数据接口选型实战
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
王的宝库11 小时前
Go 项目结构:从单文件到标准工程布局
开发语言·后端·golang
Tairitsu_H12 小时前
[C++] 深入理解红黑树:封装set与map
开发语言·c++·set·map·红黑树·模拟实现
泡海椒12 小时前
JQuick-Curl 性能分析:并发场景下的性能表现与调优,第三方接口调用不只要快写也要稳跑
java·开发语言·okhttp
小智老师PMP12 小时前
2026深度解析|PMP第八版与NPDP核心侧重点本质区别(管理类证书怎么选)
开发语言·分布式·算法·职场和发展·产品经理
2601_9623824312 小时前
python快乐编程网络爬虫课后答案
python·网络爬虫·学习工具·课后答案·刷题app
鹏哥带你干乡墅13 小时前
优选乡墅赋能培训平台如何帮助提升乡村建设?
大数据·人工智能·python
江畔柳前堤13 小时前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native