[英]python seaborn lmplot regplot for y-log scale fit
我想知道為什么 seaborn lmplot 和 regplot 只能選擇做 logx。 我經常使用線性擬合 log(y) ~ x 並且 Y 軸應始終采用對數刻度以顯示相關性(作為慣例)。
這是可以在 Seaborn 中完成的事情嗎?
logy=True 的選項會很好......
謝謝。
您可以簡單地將 y 軸比例設置為記錄:
import seaborn as sns; sns.set(color_codes=True)
tips = sns.load_dataset("tips")
ax = sns.regplot(x="total_bill", y="tip", data=tips)
ax.set_yscale('log') # set_yscale is a function, not a string
Seaborn 不支持這一點,但您可以模仿它手動執行的操作,在適當的地方插入np.power(..., 10)
和np.log10(...)
:
# create regression plotter object with log’d Y values
rp = sns.regression._RegressionPlotter(x[y>0], np.log10(y[y>0]))
# fit regression model
grid, yhat, err_bands = rp.fit_regression(ax)
# plot regression line with restored Y values
line, = ax.plot(grid, np.power(yhat, 10))
# plot error boundaries
ax.fill_between(
grid,
*[np.power(b, 10) for b in err_bands],
facecolor=line.get_color(),
alpha=.15,
)
# set axis to log10 scale
ax.set_yscale('log')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.