我正在使用stat_function
在一个ggplot
中绘制10个不同样本的回归曲线。绘制的曲线显示了不应该靠近y轴的扭结。
我无法确定相应的x值。我尝试了许多不同的Tmax值,并且扭结似乎保持在y轴附近,无论我尝试哪种Tmax。所以我假设stat_function
有问题。我最终要使用的Tmax是3500,在这种情况下,扭结非常明显,似乎在x = 50左右。
我还尝试使用来自底数R的my_curve
为单个样本绘制plot()
函数-它为我提供了所要的连续曲线。
我想使用ggplot
。因此,如果有人知道那里发生了什么,我将不胜感激。
这是一个具有回归系数和常数的伪数据帧:
set.seed(2)
regressions <-
data.frame(sample = factor(1:10),
intercept = rnorm(10, -1, 0.1),
sqrtTime = rnorm(10, -0.1, 0.0001),
Time = rnorm(10, 0.001, 0.0001),
b3 = rnorm(10, 0.5, 0.1),
x3 = rnorm(10, 7, 1))
函数和图解:
my_curve = function(x, b0, b1, b2, b3, x3) {
y = b0 + b1*sqrt(x) + b2*x + b3*x3
return(y)
}
ggplot(aes(x), data = data.frame(x = c(0:Tmax))) +
mapply(function(b0, b1, b2, b3, x3, sample){
stat_function(fun = my_curve, args = list(b0 = b0,
b1 = b1,
b2 = b2,
b3 = b3,
x3 = x3),
aes(colour = sample))
},
b0 = regressions$intercept,
b1 = regressions$sqrtTime,
b2 = regressions$Time,
b3 = regressions$b3,
x3 = regressions$x3,
sample = regressions$sample
)
答案 0 :(得分:0)
不,没有。您可以使用基本图形进行复制,并且仍然可以看到它。
您要绘制的曲线会导致y值介于0和1之间,因此在这些值之间绘制一条线(线是{
"Id": "AAA-BB-45555",
"Email": "name@hotmail.com",
"UserId": "425",
"Name": "John Paul",
"Total": "12.50",
"Billing": {
"Name": "John Paul",
"Address": {
"Address1": "line1...",
"Address2": "line2..."
}
},
"Products": [
{
"ItemId": "AAABB",
"Name": "Product 1"
},
{
"ItemId": "AAVVV",
"Name": "Product 2"
}
]
}
的默认geom
)时,您总是会看到一个扭结。
如果将x间隔减小到小于1(例如,使用stat_function
),则扭结将不太明显(但是请注意,这会占用大量计算资源!)。否则,可以从间隔中排除0或扩展y轴,以使扭结的角度不太明显。