You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Seaborn KDEplot提取数值数据(列表/数组)

提取Seaborn KDEplot数值数据的实用方法

方法1:从已绘制的KDE曲线中提取数据

当你用Seaborn画出KDE图后,每条曲线对应Matplotlib的Line2D对象,直接从这些对象里就能取出x、y轴的数值数组:

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

# 示例信号数据(替换成你的真实数据)
target_signal = np.random.normal(loc=0, scale=1, size=1000)
train_signal1 = np.random.normal(loc=-1, scale=1.2, size=1000)
train_signal2 = np.random.normal(loc=0.8, scale=0.9, size=1000)

# 绘制KDE对比图
plt.figure()
sns.kdeplot(target_signal, label="目标信号")
sns.kdeplot(train_signal1, label="训练信号1")
sns.kdeplot(train_signal2, label="训练信号2")

# 获取当前坐标轴上的所有曲线
lines = plt.gca().get_lines()

# 按绘图顺序提取每组信号的KDE数据
target_x, target_y = lines[0].get_xdata(), lines[0].get_ydata()
train1_x, train1_y = lines[1].get_xdata(), lines[1].get_ydata()
train2_x, train2_y = lines[2].get_xdata(), lines[2].get_ydata()

# 输出前5个数值验证
print("目标信号KDE前5组数据:")
print(list(zip(target_x[:5], target_y[:5])))

方法2:直接用Scipy计算KDE数值(推荐)

如果不需要可视化,直接用Scipy的gaussian_kde计算密度值更高效,还能统一x轴范围,方便后续对比:

from scipy.stats import gaussian_kde
import numpy as np

# 示例信号数据
target_signal = np.random.normal(loc=0, scale=1, size=1000)
train_signal1 = np.random.normal(loc=-1, scale=1.2, size=1000)
train_signal2 = np.random.normal(loc=0.8, scale=0.9, size=1000)

# 统一三组信号的x轴计算范围
x_min = min(target_signal.min(), train_signal1.min(), train_signal2.min())
x_max = max(target_signal.max(), train_signal1.max(), train_signal2.max())
x_values = np.linspace(x_min, x_max, 1000)  # 生成1000个均匀分布的x点

# 计算每组信号的密度值
target_kde = gaussian_kde(target_signal)
target_density = target_kde(x_values)

train1_kde = gaussian_kde(train_signal1)
train1_density = train1_kde(x_values)

train2_kde = gaussian_kde(train_signal2)
train2_density = train2_kde(x_values)

# 现在x_values和各组density数组可直接用于后续计算(如KL散度、均方误差)

注意事项

  • 方法1适合已经完成绘图、需要补提数据的场景;方法2更适合仅需数值结果的需求,可控性更强。
  • 用方法2时,统一x轴范围是关键——这样三组的密度值对应相同的x坐标,后续对比才有意义。
  • 提取的所有数据都是NumPy数组,直接支持各类数值计算操作。

内容的提问来源于stack exchange,提问作者Álvaro Torres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 01:20:10