4 回答
TA贡献1802条经验 获得超6个赞
这里发生的事情是Seaborn(或者更确切地说,它用来计算KDE的库 - scipy或statsmodels)并没有设法找出“带宽”,这是计算中使用的扩展参数。您可以手动传递它。我玩了几个值,发现1.5给出了一个与你之前相同比例的图表:
sns.kdeplot(ser_test, cumulative=True, bw=1.5)
另请参阅此处。如果您没有它,值得安装。statsmodels
TA贡献1829条经验 获得超7个赞
如果您不想等待seaborn git更新以稳定版本发布,则可以尝试问题页面中的解决方案之一。特别是henrymartin1的建议,尝试在try/catch块(由hartikainen建议)内手动传递一个小带宽,该块会抓取此特定错误的文本(因此其他错误仍然会被提出):
try:
sns.distplot(df)
except RuntimeError as re:
if str(re).startswith("Selected KDE bandwidth is 0. Cannot estimate density."):
sns.distplot(df, kde_kws={'bw': 0.1})
else:
raise re
这对我有用。
TA贡献1895条经验 获得超7个赞
您有三种选择可以尝试
第一个:使用默认设置显示 KDE 块
sns.distplot(ser_test, hist = False, rug = True, rug_kws = {'color' : 'r'})
第二:带宽窄的KDE,显示单个概率块
sns.distplot(ser_test, hist = False, rug = True, rug_kws = {'color' : 'r'}, kde_kws = {'bw' : 1})
第三:选择不同的三角形核函数(块状)
sns.distplot(ser_test, hist = False, rug = True, rug_kws = {'color' : 'r'}, kde_kws = {'bw' : 1.5, 'kernel' : 'tri'})
TA贡献1847条经验 获得超11个赞
出现此问题是由于 .statsmodels
无论如何,要解决从0.10.0开始的seaborn版本的问题,只需将arg放置即可。diag_kws={'bw': 1}
尝试找出带宽的最佳值。
添加回答
举报