第1课_7大图表类型
热度🔥:16 免费课程
授课语音
数据分析7大图表类型与适用数据
在数据分析中,数据可视化是非常重要的一环,帮助分析师和决策者更直观地理解数据。不同类型的图表适用于不同的数据情况和分析目标。以下是 7 大常见图表类型 及其适用的数据情境:
1. 柱状图 (Bar Chart)
适用场景:
- 用于比较不同类别的数据量。
- 适用于离散型数据,尤其是分类数据。
- 适用于数据较少、类别较多的情境。
示例:
- 比较不同地区的销售额。
- 各类商品的销量。
示例代码:
import matplotlib.pyplot as plt
# 数据
categories = ['A', 'B', 'C', 'D']
values = [30, 40, 25, 50]
# 绘制柱状图
plt.bar(categories, values)
plt.title('Category Comparison')
plt.xlabel('Category')
plt.ylabel('Value')
plt.show()
说明:
- 水平柱状图:对于类别名称较长或需要展示较多类别的情况,可以选择水平柱状图 (
plt.barh()
).
2. 折线图 (Line Chart)
适用场景:
- 用于显示数据随时间或某些连续变量的变化趋势。
- 适用于时间序列数据,如股票价格、气温变化等。
- 用于观察趋势的变化和波动。
示例:
- 每月的销售额变化。
- 股市的股票价格走势。
示例代码:
import matplotlib.pyplot as plt
# 数据
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
sales = [200, 250, 230, 275, 300]
# 绘制折线图
plt.plot(months, sales)
plt.title('Monthly Sales Trend')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.show()
说明:
- 多条折线图:可以用多个数据系列在同一个图表中进行比较。
3. 饼图 (Pie Chart)
适用场景:
- 用于表示各个部分占总体的比例。
- 适用于少数类别数据,且类别之间互斥。
- 用于表示比例关系,尤其是对比不同部分在整体中所占比例。
示例:
- 各部门的预算占比。
- 市场份额分布。
示例代码:
import matplotlib.pyplot as plt
# 数据
labels = ['A', 'B', 'C', 'D']
sizes = [25, 35, 20, 20]
# 绘制饼图
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)
plt.title('Market Share Distribution')
plt.show()
说明:
- 饼图适用范围:当类别较少且希望呈现百分比时,饼图非常合适。如果类别较多或比例差异较小,饼图可能会显得杂乱。
4. 散点图 (Scatter Plot)
适用场景:
- 用于显示两个连续变量之间的关系或相关性。
- 适用于探索数据中的相关性,识别趋势、离群点、群集等。
- 常用于回归分析。
示例:
- 研究广告支出与销售额之间的关系。
- 高度与体重之间的相关性。
示例代码:
import matplotlib.pyplot as plt
# 数据
height = [160, 165, 170, 175, 180]
weight = [60, 65, 70, 75, 80]
# 绘制散点图
plt.scatter(height, weight)
plt.title('Height vs Weight')
plt.xlabel('Height')
plt.ylabel('Weight')
plt.show()
说明:
- 拟合线:可以为散点图添加回归线,使用
seaborn.regplot()
或matplotlib.plot()
来实现。
5. 箱线图 (Box Plot)
适用场景:
- 用于显示数据分布的摘要,包括最大值、最小值、中位数、上四分位数和下四分位数。
- 适用于数据分布、异常值检测。
- 适用于查看数据的离散程度和波动性。
示例:
- 测量各班级成绩的分布。
- 不同地区房价的波动。
示例代码:
import matplotlib.pyplot as plt
# 数据
data = [10, 15, 14, 18, 20, 21, 19, 25, 30, 22, 17, 13]
# 绘制箱线图
plt.boxplot(data)
plt.title('Data Distribution')
plt.show()
说明:
- 多个箱线图:箱线图可以展示多个数据集的分布情况,便于比较。
6. 热力图 (Heatmap)
适用场景:
- 用于展示数据矩阵的可视化,其中颜色表示数值的大小。
- 适用于呈现相关性矩阵、频率表等。
示例:
- 展示各个变量之间的相关性。
- 展示不同时间段的销售量。
示例代码:
import seaborn as sns
import matplotlib.pyplot as plt
# 数据:相关性矩阵
correlation_matrix = [[1, 0.8, -0.3], [0.8, 1, -0.6], [-0.3, -0.6, 1]]
# 绘制热力图
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')
plt.title('Correlation Matrix')
plt.show()
说明:
- 颜色渐变:热力图的颜色代表数据的大小,可以通过
cmap
调整配色。
7. 雷达图 (Radar Chart)
适用场景:
- 用于显示多维数据,通常用于比较多个对象在各个维度的表现。
- 适用于相对数据比较,能够展示各个维度的强弱。
示例:
- 比较不同品牌的多项特性,如价格、质量、服务等。
- 多个产品的不同评分。
示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 数据
labels = ['A', 'B', 'C', 'D', 'E']
values = [7, 8, 6, 5, 7]
# 设置雷达图的角度
angles = np.linspace(0, 2 * np.pi, len(labels), endpoint=False).tolist()
# 绘制雷达图
values += values[:1]
angles += angles[:1]
plt.figure(figsize=(6, 6))
plt.subplot(111, polar=True)
plt.plot(angles, values, 'b-', linewidth=2)
plt.fill(angles, values, 'b', alpha=0.3)
plt.title('Radar Chart Example')
plt.xticks(angles[:-1], labels)
plt.show()
说明:
- 雷达图的特点:各维度的指标之间是放射状的,能直观地显示出数据在各维度上的优劣。
总结
这些图表类型各有其独特的优势,适用于不同类型的数据展示需求:
- 柱状图:适用于比较各类别数据。
- 折线图:适用于显示趋势数据,特别是时间序列数据。
- 饼图:适用于展示数据在整体中的占比。
- 散点图:适用于展示两连续变量的关系。
- 箱线图:适用于显示数据的分布和异常值。
- 热力图:适用于显示矩阵数据的关系或频次。
- 雷达图:适用于展示多维度的比较数据。
根据数据的特点和分析目标选择合适的图表类型是数据分析的一个重要步骤。