数据可视化
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()