从sns.kdeplot python提取数据

从sns.kdeplot python提取数据,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,打印前是否可以从sns.kdeplot()提取数据? 即,不使用该功能 y.get_lines()[0]。get_data()post plotting这可以通过从matplotlib轴对象提取线数据来完成: 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_

打印前是否可以从
sns.kdeplot()
提取数据? 即,不使用该功能
y.get_lines()[0]。get_data()
post plotting

这可以通过从matplotlib轴对象提取线数据来完成:

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)

提取什么数据?为了生成绘图,首先需要一些数据。请发布一些代码,以便我们可以使用。
density\u data=np.重复(df.loc[:,“Position”].values.tolist(),df.loc[:,“BaseCount”].values)
sns.kdeplot(density\u data)
这显然会生成自动绘制的密度数据。是否可以提取此数据您应该使用scipy或statsmodels KDE函数。这两个函数都输出一个对象。仍然无法找出如何提取实际密度值。似乎您无法做到这一点。这些功能不是为此而设计的。现在,您有两种实现目标的方法:在statsmodels/scipy中模拟计算(查看seaborn的来源)或自己计算(同样:scipy、statsmodels甚至scikit learn)+在没有seaborn的情况下自己绘制。