数据可视化
数据可视化是将数据转换为图形或图表的过程,帮助理解和分析数据。
Matplotlib
基础图表
python
import matplotlib.pyplot as plt
import numpy as np
# 折线图
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y, label='sin(x)', color='blue', linewidth=2)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Sine Wave')
plt.legend()
plt.grid(True)
plt.show()
# 柱状图
categories = ['A', 'B', 'C', 'D']
values = [30, 45, 25, 60]
plt.bar(categories, values, color=['red', 'green', 'blue', 'orange'])
plt.xlabel('Category')
plt.ylabel('Value')
plt.title('Bar Chart')
plt.show()
# 散点图
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
sizes = 100 * np.random.rand(50)
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Scatter Plot')
plt.colorbar()
plt.show()Seaborn
统计图表
python
import seaborn as sns
import pandas as pd
# 加载数据集
tips = sns.load_dataset('tips')
# 直方图
sns.histplot(data=tips, x='total_bill', kde=True)
plt.title('Total Bill Distribution')
plt.show()
# 箱线图
sns.boxplot(data=tips, x='day', y='total_bill')
plt.title('Total Bill by Day')
plt.show()
# 热力图
corr = tips.corr()
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.title('Correlation Heatmap')
plt.show()
# 线性回归图
sns.regplot(data=tips, x='total_bill', y='tip')
plt.title('Total Bill vs Tip')
plt.show()
# 成对关系图
sns.pairplot(tips, hue='sex')
plt.show()Plotly
交互式图表
python
import plotly.express as px
# 交互式散点图
df = px.data.iris()
fig = px.scatter(df, x='sepal_width', y='sepal_length',
color='species', size='petal_length',
hover_data=['petal_width'])
fig.show()
# 交互式折线图
df = px.data.stocks()
fig = px.line(df, x='date', y='GOOG', title='Google Stock Price')
fig.show()
# 交互式饼图
df = px.data.tips()
fig = px.pie(df, values='tip', names='day', title='Tips by Day')
fig.show()
# 交互式直方图
fig = px.histogram(df, x='total_bill', color='sex', title='Total Bill Distribution')
fig.show()
# 交互式3D散点图
fig = px.scatter_3d(df, x='total_bill', y='tip', z='size',
color='sex', title='3D Scatter Plot')
fig.show()可视化最佳实践
选择合适的图表类型
| 数据类型 | 推荐图表 |
|---|---|
| 趋势变化 | 折线图 |
| 比较数据 | 柱状图、条形图 |
| 数据分布 | 直方图、箱线图 |
| 相关性 | 散点图、热力图 |
| 比例关系 | 饼图、环形图 |
设计原则
- 简洁清晰: 避免过多装饰元素
- 色彩搭配: 使用和谐的配色方案
- 标签明确: 添加清晰的标题和轴标签
- 数据突出: 重点数据使用醒目的颜色或样式
- 交互友好: 对于复杂图表,添加交互功能