🎯 学习目标

  • 掌握Matplotlib基础绑图
  • 学会使用Seaborn进行统计可视化
  • 了解常见图表类型的选择
  • 掌握可视化最佳实践
数据可视化
图:好的可视化能揭示数据中的规律

📊 Matplotlib基础

import matplotlib.pyplot as plt import numpy as np # 基本折线图 x = np.linspace(0, 10, 100) y = np.sin(x) plt.figure(figsize=(10, 6)) plt.plot(x, y, label='sin(x)', color='blue', linewidth=2) plt.plot(x, np.cos(x), label='cos(x)', color='red', linestyle='--') plt.xlabel('X轴') plt.ylabel('Y轴') plt.title('正弦和余弦函数') plt.legend() plt.grid(True) plt.show() # 保存图片 plt.savefig('plot.png', dpi=300, bbox_inches='tight')

📈 常见图表类型

柱状图

categories = ['A', 'B', 'C', 'D'] values = [23, 45, 56, 78] plt.bar(categories, values, color='steelblue') plt.xlabel('类别') plt.ylabel('数值') plt.title('柱状图示例') plt.show()

散点图

x = np.random.randn(100) y = np.random.randn(100) plt.scatter(x, y, c='green', alpha=0.5) plt.xlabel('X') plt.ylabel('Y') plt.title('散点图示例') plt.show()

直方图

data = np.random.randn(1000) plt.hist(data, bins=30, color='purple', alpha=0.7, edgecolor='black') plt.xlabel('值') plt.ylabel('频数') plt.title('直方图示例') plt.show()

饼图

sizes = [30, 25, 20, 15, 10] labels = ['A', 'B', 'C', 'D', 'E'] plt.pie(sizes, labels=labels, autopct='%1.1f%%') plt.title('饼图示例') plt.axis('equal') plt.show()

🎨 Seaborn高级可视化

import seaborn as sns import pandas as pd # 设置主题 sns.set_theme(style="whitegrid") # 加载示例数据 tips = sns.load_dataset("tips") # 箱线图 plt.figure(figsize=(10, 6)) sns.boxplot(x="day", y="total_bill", data=tips) plt.title("每日账单分布") plt.show() # 小提琴图 sns.violinplot(x="day", y="total_bill", hue="sex", data=tips, split=True) plt.show() # 热力图(相关矩阵) correlation = tips.corr(numeric_only=True) sns.heatmap(correlation, annot=True, cmap='coolwarm') plt.title("特征相关性") plt.show() # 配对图 sns.pairplot(tips, hue="sex") plt.show()

📊 图表选择指南

数据类型 推荐图表 应用场景
数值分布 直方图、密度图 了解数据分布特征
类别比较 柱状图、条形图 比较不同类别数值
趋势变化 折线图、面积图 时间序列数据
变量关系 散点图、气泡图 探索变量相关性
部分占比 饼图、环形图 展示组成部分
💡
可视化最佳实践
  • 选择合适的图表类型
  • 保持简洁,避免过度装饰
  • 使用清晰的标签和标题
  • 考虑色盲友好的配色

📝 本节小结

  • • Matplotlib是Python绑图的基础库
  • • Seaborn提供更美观的统计图表
  • • 选择正确的图表类型很重要
  • • 可视化帮助理解数据和调试模型