在ggplot2中添加一条手动设计的非线性线?
Add a manually designed non-linear line in ggplot2?
我想在 R 中的图形中添加非线性模型线,但不是让 ggplot
找到最合适的,我只想预设它的参数,从而能够看到如何多个手动设计的模型适合数据。我尝试了以下方法:
ggplot(cars, aes(x = speed, y = dist)) +
geom_point() +
geom_smooth(method = "nls", method.args = list(formula = y ~ 0.76*exp(x*0.5), color = blue, data = data)
但是出现错误:
Computation failed in 'stat_smooth()':
formal argument "data" matched by multiple actual arguments
稍作调整后,我还收到错误“what”必须是函数或字符串。有谁知道是否可以手动指定这样的行?我找不到任何其他 Stack Overflow post 关于这个特定主题。
您可能正在寻找 geom_function()
:
gg0 <- ggplot(cars, aes(x = speed, y = dist)) + geom_point()
gg0 + geom_function(fun = function(x) 0.76*exp(x*0.5), colour = "blue") +
coord_cartesian(ylim=c(0,100))
我添加了 coord_cartesian
,因为指定的函数在该图的 x 范围的上端获得了非常大的值 ...
我想在 R 中的图形中添加非线性模型线,但不是让 ggplot
找到最合适的,我只想预设它的参数,从而能够看到如何多个手动设计的模型适合数据。我尝试了以下方法:
ggplot(cars, aes(x = speed, y = dist)) +
geom_point() +
geom_smooth(method = "nls", method.args = list(formula = y ~ 0.76*exp(x*0.5), color = blue, data = data)
但是出现错误:
Computation failed in 'stat_smooth()': formal argument "data" matched by multiple actual arguments
稍作调整后,我还收到错误“what”必须是函数或字符串。有谁知道是否可以手动指定这样的行?我找不到任何其他 Stack Overflow post 关于这个特定主题。
您可能正在寻找 geom_function()
:
gg0 <- ggplot(cars, aes(x = speed, y = dist)) + geom_point()
gg0 + geom_function(fun = function(x) 0.76*exp(x*0.5), colour = "blue") +
coord_cartesian(ylim=c(0,100))
我添加了 coord_cartesian
,因为指定的函数在该图的 x 范围的上端获得了非常大的值 ...