当前位置:首页>python>python数据可视化技巧的100个练习 -- 20. 创建产品类别的树形图

python数据可视化技巧的100个练习 -- 20. 创建产品类别的树形图

  • 2026-09-02 16:09:21
python数据可视化技巧的100个练习 -- 20. 创建产品类别的树形图
重要性★★★★☆
难度★★★☆☆
你是一家电子商务公司的数据分析师。
营销团队希望可视化其库存中产品类别的分布,以便更好地了解哪些领域可能需要更多关注或推广。
他们要求你创建一个树形图,以显示不同产品类别的层次结构和相对大小。
你的任务是:
  • 创建一个产品类别及其数量的样本数据集。
  • 使用 Python 处理这些数据并创建树形图可视化。
  • 确保树形图清晰显示主要类别和子类别的层次结构。
  • 使用颜色编码区分不同的主要类别。
  • 为每个类别和子类别添加标签及其各自的数量。
请编写一个 Python 脚本,生成所需的数据集并创建树形图可视化。
确保代码高效且有注释,以便日后参考。

【数据生成代码示例】

import pandas as pddata = {    'Category': ['Electronics', 'Electronics', 'Electronics', 'Clothing', 'Clothing', 'Clothing', 'Home', 'Home', 'Home'],    'Subcategory': ['Smartphones', 'Laptops', 'Accessories', 'Men', 'Women', 'Kids', 'Furniture', 'Decor', 'Kitchenware'],    'Quantity': [500, 300, 1000, 800, 1200, 600, 400, 700, 500]}df = pd.DataFrame(data)

【图表答案】

【代码答案】

import pandas as pdimport plotly.express as px# 创建样本数据集data = {    'Category': ['Electronics', 'Electronics', 'Electronics', 'Clothing', 'Clothing', 'Clothing', 'Home', 'Home', 'Home'],    'Subcategory': ['Smartphones', 'Laptops', 'Accessories', 'Men', 'Women', 'Kids', 'Furniture', 'Decor', 'Kitchenware'],    'Quantity': [500, 300, 1000, 800, 1200, 600, 400, 700, 500]}df = pd.DataFrame(data)# 创建树形图fig = px.treemap(    df,    path=['Category', 'Subcategory'],    values='Quantity',    color='Category',    color_discrete_sequence=px.colors.qualitative.Set3,    title='产品类别树形图',    hover_data=['Quantity'])# 更新布局并显示图表fig.update_traces(textinfo='label+value')fig.update_layout(margin=dict(t=50, l=25, r=25, b=25))fig.show()
这段代码使用 Python 和 Plotly 库创建了产品类别的树形图可视化。
让我们逐步分析这个过程:

数据准备

我们首先导入必要的库:用于数据操作的 pandas 和用于创建可视化的 plotly.express。
我们使用一个字典创建一个样本数据集,包含三列:'Category'(类别)、'Subcategory'(子类别)和 'Quantity'(数量)。
然后将这些数据转换为 pandas DataFrame,便于操作。

创建树形图

我们使用 Plotly Express 的 px.treemap() 函数创建树形图可视化。
path 参数:定义树形图的层次结构。在此示例中,我们使用 ['Category', 'Subcategory'] 创建两个层级。
values 参数:设置为 'Quantity',这决定了树形图中每个方块的大小。
color 参数:设置为 'Category',这意味着每个主要类别将有不同的颜色。
color_discrete_sequence 参数:使用预定义的颜色序列(Set3),以获得视觉上吸引人的颜色方案。
title 参数:为图表添加标题,以便清晰显示。
hover_data 参数:设置为显示每个方块上的数量信息。

自定义树形图

我们使用 update_traces() 自定义每个方块上显示的文本信息。'label+value' 显示类别名称及其数量。
使用 update_layout() 调整图表的边距,以便更好地呈现。

显示图表

最后,调用 fig.show() 显示交互式树形图。
这种可视化使我们能够快速了解产品在类别和子类别中的分布情况。
每个方块的大小代表产品的数量,而颜色则区分不同的主要类别。
这使得我们能够轻松识别哪些类别或子类别可能需要更多关注,或者拥有最大的库存。

【小知识】

树形图是由 Ben Shneiderman 在 20 世纪 90 年代发明的,用于可视化层次数据结构。
树形图特别适用于在有限空间内显示大型层次数据集。
本例中使用的 Plotly 库不仅仅用于树形图;它是一个强大的工具,用于创建各种交互式可视化。
数据可视化中的颜色选择至关重要。这里使用的 Set3 颜色方案是为色盲友好而设计的。
尽管树形图非常适合显示层次数据,但如果层级或项目过多,它们可能会变得难以阅读。
在电子商务中,树形图不仅可以用于库存可视化,还可以用于分析销售数据、客户细分等。
这里使用的 pandas 库名称来源于“面板数据”,这是用于多维结构化数据集的计量经济学术语。
高效的数据可视化可以通过使复杂数据易于理解,显著加快企业的决策过程。

最新文章

随机文章