当前位置:首页>python>python数据可视化技巧的100个练习 -- 48. 分类数据的分面网格图

python数据可视化技巧的100个练习 -- 48. 分类数据的分面网格图

  • 2026-09-11 01:23:49
python数据可视化技巧的100个练习 -- 48. 分类数据的分面网格图
重要性★★★★☆
难度★★★☆☆
一家零售公司希望分析不同地区和产品类别的销售业绩。他们拥有销售金额、地区和产品类别的数据。您的任务是创建一个分面网格图,以可视化这些类别和地区之间的销售金额分布。使用提供的样本数据生成该图。确保该图清晰且信息丰富。
【数据生成代码示例】
import pandas as pdimport numpy as np# 生成样本数据np.random.seed(42)regions = ['North', 'South', 'East', 'West']categories = ['Electronics', 'Clothing', 'Groceries']data = {    'Region': [regions[np.random.randint(0, 4)] for _ in range(100)],    'Category': [categories[np.random.randint(0, 3)] for _ in range(100)],    'Sales': np.random.randint(100, 1000, 100)}df = pd.DataFrame(data)
【图表答案】
【代码答案】
import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt # 生成样本数据 np.random.seed(42) regions = ['North', 'South', 'East', 'West'] categories = ['Electronics', 'Clothing', 'Groceries'] data = {     'Region': [regions[np.random.randint(0, 4)] for _ in range(100)],     'Category': [categories[np.random.randint(0, 3)] for _ in range(100)],     'Sales': np.random.randint(100, 1000, 100) } df = pd.DataFrame(data) # 创建分面网格图 g = sns.FacetGrid(df, col="Region", row="Category", margin_titles=True) g.map(sns.histplot, "Sales") plt.show()
解题步骤
  1. 生成样本数据:

    • 使用 numpy 的随机函数生成数据,确保值的分布多样且随机。

    • 创建一个包含销售金额、地区和产品类别的 pandas DataFrame。

  2. 创建分面网格图:

    • 使用 seaborn 的 FacetGrid 类创建分面网格图。

    • col="Region" 和 row="Category" 参数定义了网格的列和行,分别对应地区和产品类别。

    • margin_titles=True 参数在网格的边缘显示行和列的标题,使网格更易读。

  3. 绘制图表:

    • 使用 g.map(sns.histplot, "Sales") 将直方图绘制函数应用到网格的每个单元格中。

    • sns.histplot 用于绘制销售金额的分布。

  4. 显示图表:

    • 使用 plt.show() 显示最终的分面网格图。

小知识
seaborn的FacetGrid:特别适用于可视化多维分类数据中的复杂关系。
自定义:FacetGrid 可以广泛自定义,包括调整网格大小、添加标题和修改图表外观。
图表类型:可以在 FacetGrid 中使用直方图、散点图和其他类型的图表,以不同方式表示数据。
margin_titles参数:帮助在网格边缘显示行和列的标题,使网格更易读。


系列完整内容可以在公众号主页搜索或点击分栏找到,欢迎扫码关注预防迷路找不到。感谢您的支持与相伴。

最新文章

随机文章