数据科学入门教程:比例数据可视化方法详解

数据科学入门教程:比例数据可视化方法详解

Data-Science-For-Beginners 10 Weeks, 20 Lessons, Data Science for All! Data-Science-For-Beginners 项目地址: https://gitcode.com/gh_mirrors/da/Data-Science-For-Beginners

比例数据可视化是数据分析中常见且重要的任务。本文将以蘑菇数据集为例,系统讲解三种比例可视化方法:饼图、环形图和华夫饼图。

数据准备与预处理

首先我们需要加载并预处理蘑菇数据集:

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个类别 | 视觉冲击力强 | 需要额外库支持 |

最佳实践建议

  1. 数据预处理:确保将文本数据正确转换为分类数据
  2. 标签清晰:确保每个类别都有明确标签
  3. 颜色选择:使用对比明显的颜色,避免相近色
  4. 类别数量:控制显示类别数量,过多时可考虑合并小类别
  5. 百分比显示:添加百分比可提高图表信息量

总结

本文通过蘑菇数据集详细讲解了三种比例可视化方法。在实际项目中,应根据数据特点和展示需求选择合适的图表类型。记住,好的可视化应该让观众一眼就能理解数据背后的故事。

Data-Science-For-Beginners 10 Weeks, 20 Lessons, Data Science for All! Data-Science-For-Beginners 项目地址: https://gitcode.com/gh_mirrors/da/Data-Science-For-Beginners

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奚子萍Marcia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值