2016-12-16 44 views
2

这个问题是类似这样的:Use geom_smooth with transformed y对数y随geom_smooth

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

我想要做的是绘制一个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'))) 

我是后是这样一行:

myplot + geom_line(aes(x=speed, y=exp(predict(lm(log(dist)~speed))))) 
+0

你还在OP? –

+0

如果内置帮助页面繁琐通过http://docs.ggplot2.org/current/#拥有ggplot2的最新信息,并且几乎100%必须为除了最基本的情节之外的任何内容创建任何内容现在从旧版本升级。许多主要的,不合理的API更改。 – hrbrmstr

+0

嗨,所以我查了一下,但找不到正确的答案,因为删除了“家人”的说法。但我会将链接保存在这里供将来参考!谢谢! –

回答

4

是的,你说得对,看来必要的语法已经改变了一点:

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

enter image description here

+0

是的!我可以发誓我曾尝试搞乱method.args的论点,但无法正确理解它。现在正在工作。谢啦! –

+0

我正在使用method =“lm”而不是“glm”。要注意这一点! –