优化多层级数据分布可视化:实现KDE曲线面积归一化
让Seaborn KDE图每条曲线面积归一化至1的解决方案
你遇到的核心问题是不同层级数据量差异大,默认KDE图采用全局归一化导致各曲线面积不一致。只需修改一个参数就能实现每条曲线独立归一化(面积为1)且不改变分布形态:
修改后的代码
import seaborn as sns import matplotlib.pyplot as plt sns.displot( data=data_vert, x='dev_median_qty', hue='level', kind='kde', fill=True, palette=sns.color_palette('bright')[:5], height=5, aspect=2.5, common_norm=False # 关键:关闭全局归一化,每条曲线独立归一化到面积1 ) plt.xlim(-5, 25) plt.show()
参数说明
- common_norm=False:这是实现需求的核心参数。默认
common_norm=True会将所有hue分组的KDE曲线归一化到同一全局尺度(总面积为1),改为False后,每个分组的曲线会单独计算密度,确保每条曲线下的面积均为1,完全保留原始分布形态的同时,让不同层级的曲线更具可比性。 - 其余参数保持原有设置,保证图表的配色、尺寸和填充样式与之前一致。
内容的提问来源于stack exchange,提问作者Naman Jindal
相关产品推荐
相关产品推荐

