数据科学入门教程:比例数据可视化方法详解
比例数据可视化是数据分析中常见且重要的任务。本文将以蘑菇数据集为例,系统讲解三种比例可视化方法:饼图、环形图和华夫饼图。
数据准备与预处理
首先我们需要加载并预处理蘑菇数据集:
import pandas as pd
import matplotlib.pyplot as plt
# 加载数据集
mushrooms = pd.read_csv('mushrooms.csv')
# 查看前几行数据
mushrooms.head()
该数据集包含23种蘑菇的多个特征,如类别(可食用/有毒)、菌盖形状、菌盖表面、菌盖颜色等。所有数据最初都是文本格式,我们需要将其转换为分类数据:
# 将文本列转换为分类类型
cols = mushrooms.select_dtypes(["object"]).columns
mushrooms[cols] = mushrooms[cols].astype('category')
1. 饼图(Pie Chart)
饼图是最基础的比例可视化方法,适合展示2-5个类别的比例关系。
绘制蘑菇可食用性饼图
# 按类别分组统计
edibleclass = mushrooms.groupby(['class']).count()
# 绘制饼图
labels = ['Edible','Poisonous']
plt.pie(edibleclass['population'], labels=labels, autopct='%.1f %%')
plt.title('蘑菇可食用性比例')
plt.show()
技术要点:
autopct
参数控制百分比显示格式- 标签顺序必须与数据分组顺序一致
- 适用于类别较少的情况,超过5个类别时饼图会显得拥挤
2. 环形图(Donut Chart)
环形图是饼图的变体,中心留空可以显示额外信息或减少视觉压力。
绘制蘑菇生长环境环形图
# 按生长环境分组统计
habitat = mushrooms.groupby(['habitat']).count()
# 设置标签
labels = ['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood']
# 绘制环形图
plt.pie(habitat['class'], labels=labels, autopct='%1.1f%%', pctdistance=0.85)
center_circle = plt.Circle((0, 0), 0.40, fc='white') # 创建中心圆
fig = plt.gcf()
fig.gca().add_artist(center_circle) # 添加中心圆
plt.title('蘑菇生长环境分布')
plt.show()
技术要点:
- 通过调整
pctdistance
控制百分比标签位置 - 中心圆大小由
Circle
的半径参数控制(示例中为0.40) - 环形图比饼图更适合展示多个类别(5-7个)
3. 华夫饼图(Waffle Chart)
华夫饼图使用方格矩阵表示比例,视觉上更直观且有趣。
绘制蘑菇菌盖颜色华夫饼图
首先安装所需库:
pip install pywaffle
然后绘制图表:
from pywaffle import Waffle
# 按菌盖颜色分组统计
capcolor = mushrooms.groupby(['cap-color']).count()
# 准备数据
data = {
'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'],
'amount': capcolor['class']
}
# 绘制华夫饼图
fig = plt.figure(
FigureClass = Waffle,
rows = 100, # 行数
values = data['amount'],
labels = list(data['color']),
figsize = (30,30),
colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"],
)
plt.show()
技术要点:
rows
参数控制图表精细度- 可以自定义每个方块的颜色
- 适合展示10个以内的类别
- 视觉冲击力强,适合演示场景
方法对比与选择建议
| 图表类型 | 适用场景 | 优点 | 缺点 | |---------|---------|------|------| | 饼图 | 2-5个类别 | 简单直观 | 类别多时难以比较 | | 环形图 | 5-7个类别 | 视觉更美观 | 需要更多空间 | | 华夫饼图 | 3-10个类别 | 视觉冲击力强 | 需要额外库支持 |
最佳实践建议
- 数据预处理:确保将文本数据正确转换为分类数据
- 标签清晰:确保每个类别都有明确标签
- 颜色选择:使用对比明显的颜色,避免相近色
- 类别数量:控制显示类别数量,过多时可考虑合并小类别
- 百分比显示:添加百分比可提高图表信息量
总结
本文通过蘑菇数据集详细讲解了三种比例可视化方法。在实际项目中,应根据数据特点和展示需求选择合适的图表类型。记住,好的可视化应该让观众一眼就能理解数据背后的故事。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考