繁体   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