我试图做一个Kernel Density Estimation (KDE) plot与海运和定位中位数。代码看起来像这样:
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
sns.set_palette("hls", 1)
data = np.random.randn(30)
sns.kdeplot(data, shade=True)
# x_median, y_median = magic_function()
# plt.vlines(x_median, 0, y_median)
plt.show()
正如你所看到的,我需要一个magic_function()
来从kdeplot
中获取x和y的中值。然后我想用e来绘制它们。例如vlines
。但是,我不知道该怎么做。结果应该看起来像这样(显然这里的黑色中间条是错误的):
我想我的问题与seaborn没有严格的关系,也适用于其他类型的matplotlib图。如有任何意见,不胜感激。
1条答案
按热度按时间xmjla07d1#
您需要:
1.提取KDE行的数据
1.积分计算累积分布函数(CDF)
1.找到使CDF等于1/2的值,即中位数