python数据可视化技巧的100个练习 -- 12. 创建年龄分布的小提琴图
你是一家公司的数据分析师,该公司希望可视化其客户的年龄分布。目标是创建一个小提琴图以更好地了解分布情况。请按照以下步骤生成年龄的合成数据集,然后创建小提琴图。确保年龄范围为 18 至 70 岁,且有 200 个数据点。【数据生成代码示例】
import numpy as npimport pandas as pd# 创建一个年龄范围为 18 至 70 岁的合成数据集,包含 200 个数据点ages = np.random.randint(18, 71, 200)# 转换为 DataFrame 以便于操作data = pd.DataFrame({'Age': ages})data.head()
【图表答案】
【代码答案】
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns# 创建一个年龄范围为 18 至 70 岁的合成数据集,包含 200 个数据点ages = np.random.randint(18, 71, 200)# 转换为 DataFrame 以便于操作data = pd.DataFrame({'Age': ages})# 绘制小提琴图plt.figure(figsize=(10, 6))sns.violinplot(x=data['Age'])plt.title('客户年龄分布')plt.xlabel('年龄')plt.show()
这个练习旨在教读者如何使用 Python 创建小提琴图。首先,使用 NumPy 的 randint 函数生成代表客户年龄的合成数据,年龄范围为 18 至 70 岁。然后,将数据转换为 pandas DataFrame,以便于操作。为了可视化,使用 Seaborn 库,因为它简单且具有强大的绘图功能。小提琴图是箱线图和核密度图的组合,展示了数据的分布形状。sns.violinplot 函数创建小提琴图,plt.title 和 plt.xlabel 分别用于设置图表标题和 x 轴标签。【小知识】
它不仅像箱线图一样显示汇总统计信息,还显示不同值处的数据密度。Seaborn 的 violinplot 函数自动结合了箱线图和核密度估计,提供了数据的全面视图。