将stat_function图层添加到ggplot2中的geom_point

时间:2016-05-29 00:19:18

标签: r ggplot2

我试图制作一条代表脑萎缩的轨迹线。我有两个不同组的两个特定轨迹,我想将这两行中的每一行(用于比较)添加到Age by Brain Volume的散点图中。

这些线的y截距是565和286,但是使用stat_function层它似乎将截距放在非常奇怪的值上,破坏了整个散点图。当然我可以使用ylim(),但是函数不会出现(即使它们确实存在,它们仍然会被错误指定)。

我的代码:

ggplot(na.omit(GRAPHICSMATRIX), aes(x=Age, y=FrontalPole, colour=Dx_Bl)) +
  geom_point(size=3) +  
  ylim(0, 500) + 
  stat_function(fun=function(x) {-2.129*x^3 - 23.456*x + 565}, colour="blue", size=1) +  
  stat_function(fun=function(x) (286)+((-0.997)*(x)^3), colour="darkred", size=2) 

以下是图表。

Correct Scatterplot

Incorrect Scatterplot with two stat_function()

1 个答案:

答案 0 :(得分:1)

是的,您的y截距分别为565286,但这些值适用于x=0时。您在问题中显示的图表从x=55左右开始。在这种情况下,当我们为您的函数插入x=55时,我们得到:

-2.129(55^3) - 23.456(55) + 565 = 354,937.455

286 + -0.997*(55^3) = 165,589.875

所以你想的是你的y拦截实际上并不是。我认为您stat_functions工作正常。如果你不喜欢这些结果,我认为你需要重新思考你想要绘制的函数。