从sns.kdeplot python中提取数据

时间:2015-09-11 13:19:24

标签: python matplotlib seaborn

在绘图之前是否可以从sns.kdeplot()中提取数据? 即。不使用该功能 y.get_lines()[0].get_data()后投影

1 个答案:

答案 0 :(得分:1)

这可以通过从matplotlib Axes对象中提取行数据来完成:

import numpy as np
from seaborn import kdeplot

my_data = np.random.randn(1000)
my_kde = kdeplot(my_data)
line = my_kde.lines[0]
x, y = line.get_data()

fig, ax = plt.subplots()
ax.plot(x[x>0], y[x>0])

或者statsmodels方式:

import statsmodels.api as sm

dens = sm.nonparametric.KDEUnivariate(np.random.randn(1000))
dens.fit()
x =np.linspace(0,1,100) #restrict range to (0,1)
y = dens.evaluate(x)
plt.plot(x,y)