数据可视化

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.title('三角函数', fontsize=16)
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()

图表类型

# 柱状图
plt.bar(categories, values)

# 饼图
plt.pie(sizes, labels=labels, autopct='%1.1f%%')

# 直方图
plt.hist(data, bins=30, edgecolor='black')

# 散点图
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5)

Seaborn 统计可视化

import seaborn as sns

sns.set_theme(style="whitegrid")

# 加载数据
tips = sns.load_dataset('tips')

# 分布图
sns.histplot(tips['total_bill'], kde=True)

# 箱线图
sns.boxplot(x='day', y='total_bill', data=tips)

# 小提琴图
sns.violinplot(x='time', y='tip', data=tips)

# 热力图
corr = tips.corr(numeric_only=True)
sns.heatmap(corr, annot=True, cmap='coolwarm')

# 成对关系图
sns.pairplot(tips, hue='sex')

实战:电商销售分析

plt.rcParams['font.sans-serif'] = ['SimHei']

fig, axes = plt.subplots(2, 2, figsize=(14, 10))

# 月度销售额
monthly = df.groupby('month')['amount'].sum()
axes[0, 0].plot(monthly.index, monthly.values, marker='o')
axes[0, 0].set_title('月度销售额趋势')

# 品类分布
category = df.groupby('category')['amount'].sum()
axes[0, 1].pie(category.values, labels=category.index, autopct='%1.1f%%')

plt.tight_layout()
plt.show()