logomithmic y with geom_smooth

Sol*_*aga 7 r ggplot2

这个问题类似于这个问题:使用geom_smooth和变换后的y

事实上,它是同一个,它只是提供的解决方案不再有效.

我想要做的是绘制一个geom_smooth,它在公式的y侧有log(y).如果直接在formula参数中完成,则会产生奇怪的结果.所以,我将使用我提到的问题中使用的相同示例:

#This works:
 myplot <- qplot(speed, dist, data=cars)
(myplot + geom_smooth(method="lm", formula=y~log(x)))

#does not work
(myplot + geom_smooth(method="lm", formula=log(y)~x))

#no longer works:
(myplot + geom_smooth(method = "glm", formula = y~x,
                  family = gaussian(link = 'log')))
Run Code Online (Sandbox Code Playgroud)

我所追求的是这样一条线:

myplot + geom_line(aes(x=speed, y=exp(predict(lm(log(dist)~speed)))))
Run Code Online (Sandbox Code Playgroud)

Hac*_*k-R 10

是的,你是对的,似乎必要的语法有所改变:

(myplot + geom_smooth(method = "glm", formula = y~x,
                      method.args = list(family = gaussian(link = 'log'))))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 我使用method ="lm"而不是"glm".要注意那个! (2认同)
  • 为什么日志链接有效,但“formula = 'log(y) ~ log(x)'”却不起作用? (2认同)