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),以获得视觉上吸引人的颜色方案。hover_data 参数:设置为显示每个方块上的数量信息。自定义树形图
我们使用 update_traces() 自定义每个方块上显示的文本信息。'label+value' 显示类别名称及其数量。使用 update_layout() 调整图表的边距,以便更好地呈现。显示图表
最后,调用 fig.show() 显示交互式树形图。这种可视化使我们能够快速了解产品在类别和子类别中的分布情况。每个方块的大小代表产品的数量,而颜色则区分不同的主要类别。这使得我们能够轻松识别哪些类别或子类别可能需要更多关注,或者拥有最大的库存。【小知识】
树形图是由 Ben Shneiderman 在 20 世纪 90 年代发明的,用于可视化层次数据结构。本例中使用的 Plotly 库不仅仅用于树形图;它是一个强大的工具,用于创建各种交互式可视化。数据可视化中的颜色选择至关重要。这里使用的 Set3 颜色方案是为色盲友好而设计的。尽管树形图非常适合显示层次数据,但如果层级或项目过多,它们可能会变得难以阅读。在电子商务中,树形图不仅可以用于库存可视化,还可以用于分析销售数据、客户细分等。这里使用的 pandas 库名称来源于“面板数据”,这是用于多维结构化数据集的计量经济学术语。高效的数据可视化可以通过使复杂数据易于理解,显著加快企业的决策过程。