当前位置:首页>python>python数据可视化技巧的100个练习 -- 45. 分布数据的欢乐图

python数据可视化技巧的100个练习 -- 45. 分布数据的欢乐图

  • 2026-09-09 13:51:41
python数据可视化技巧的100个练习 -- 45. 分布数据的欢乐图
重要性★★★☆☆
难度★★★☆☆
您是一家零售公司的数据分析师。
您的任务是可视化不同地区的月度销售数据分布,以识别模式和趋势。
您决定使用欢乐图(也称为山脊图)来显示每个地区的销售数据分布。
为五个地区生成 12 个月的样本销售数据,并创建欢乐图以可视化分布。

【数据生成代码示例】

import numpy as npimport pandas as pdregions = ['North', 'South', 'East', 'West', 'Central']# 创建一个字典来存储销售数据data = {    'Month': np.tile(np.arange(1, 13), len(regions)),    'Region': np.repeat(regions, 12),    'Sales': np.random.randint(1000, 5000, 12 * len(regions))}# 将字典转换为 DataFramedf = pd.DataFrame(data)df

【图表答案】

【代码答案】

import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # 创建样本数据 regions = ['North', 'South', 'East', 'West', 'Central'] data = {    'Month': np.tile(np.arange(1, 13), len(regions)),     'Region': np.repeat(regions, 12),     'Sales': np.random.randint(1000, 5000, 12 * len(regions))} df = pd.DataFrame(data) # 设置图表sns.set(style='whitegrid') g = sns.FacetGrid(df, row='Region', hue='Region', aspect=4, height=1.5, palette='muted') # 绘制每个分布g.map(sns.kdeplot, 'Sales', fill=True) g.map(plt.axhline, y=0, lw=2, clip_on=False) g.fig.subplots_adjust(hspace=-0.3) # 移除与重叠效果不兼容的轴细节g.set_titles("") g.set(yticks=[]) g.despine(bottom=True, left=True) # 显示图表plt.show()

解题步骤

  1. 导入必要的库:

    • 使用 numpy 进行数值运算。

    • 使用 pandas 进行数据处理。

    • 使用 matplotlib 和 seaborn 进行可视化。

  2. 生成样本数据:

    • 使用 numpy 创建月份数组和随机销售数据。

    • 将数据组织成字典,然后转换为 pandas DataFrame。

  3. 设置图表:

    • 使用 seaborn 设置图表风格为 whitegrid。

    • 使用 sns.FacetGrid 创建一个网格,按地区绘制销售数据分布。

  4. 绘制每个分布:

    • 使用 sns.kdeplot 绘制每个地区的核密度估计图,并填充曲线下的区域。

    • 使用 plt.axhline 添加水平线以增强视觉效果。

  5. 调整图表样式:

    • 使用 g.fig.subplots_adjust 调整子图之间的间距,实现欢乐图的重叠效果。

    • 移除不必要的轴标题和 y 轴刻度,使用 g.despine 去掉顶部和右侧的边框,使图表更简洁。

  6. 显示图表:

    • 使用 plt.show() 显示图表,展示每个地区在不同月份的销售数据分布。

小知识

欢乐图:因 Joy Division 乐队的专辑《Unknown Pleasures》封面而得名,该封面由一系列堆叠的折线图组成。
用途:特别适用于可视化多个类别或时间段的数据分布。
seaborn:基于 matplotlib 的高级可视化库,提供了美观的默认样式和丰富的绘图功能。
核密度估计:通过 sns.kdeplot 绘制,用于估计数据的概率密度函数,提供数据分布的平滑表示。


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

最新文章

随机文章