4 回答
TA貢獻1802條經(jīng)驗 獲得超6個贊
這里發(fā)生的事情是Seaborn(或者更確切地說,它用來計算KDE的庫 - scipy或statsmodels)并沒有設(shè)法找出“帶寬”,這是計算中使用的擴展參數(shù)。您可以手動傳遞它。我玩了幾個值,發(fā)現(xiàn)1.5給出了一個與你之前相同比例的圖表:
sns.kdeplot(ser_test, cumulative=True, bw=1.5)
另請參閱此處。如果您沒有它,值得安裝。statsmodels
TA貢獻1829條經(jīng)驗 獲得超7個贊
如果您不想等待seaborn git更新以穩(wěn)定版本發(fā)布,則可以嘗試問題頁面中的解決方案之一。特別是henrymartin1的建議,嘗試在try/catch塊(由hartikainen建議)內(nèi)手動傳遞一個小帶寬,該塊會抓取此特定錯誤的文本(因此其他錯誤仍然會被提出):
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條經(jīng)驗 獲得超7個贊
您有三種選擇可以嘗試
第一個:使用默認(rèn)設(shè)置顯示 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})
第三:選擇不同的三角形核函數(shù)(塊狀)
sns.distplot(ser_test, hist = False, rug = True, rug_kws = {'color' : 'r'}, kde_kws = {'bw' : 1.5, 'kernel' : 'tri'})
TA貢獻1847條經(jīng)驗 獲得超11個贊
出現(xiàn)此問題是由于 .statsmodels
無論如何,要解決從0.10.0開始的seaborn版本的問題,只需將arg放置即可。diag_kws={'bw': 1}
嘗試找出帶寬的最佳值。
添加回答
舉報
