簡體   English   中英

用於 y-log 比例擬合的 python seaborn lmplot regplot

[英]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

您可以使用regplot返回的來做到這一點

ax = seaborn.regplot('x', 'y', data)
ax.set(yscale='log')       

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM