我试图制作一条代表脑萎缩的轨迹线。我有两个不同组的两个特定轨迹,我想将这两行中的每一行(用于比较)添加到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)
以下是图表。
答案 0 :(得分:1)
是的,您的y截距分别为565
和286
,但这些值适用于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
工作正常。如果你不喜欢这些结果,我认为你需要重新思考你想要绘制的函数。