R ggplot2:使用ggplot2绘制曲线

R ggplot2:使用ggplot2绘制曲线,r,ggplot2,curve,R,Ggplot2,Curve,大家好,我在绘制数据方面遇到了一些麻烦。我得到了两种方法,它们都给出了不同的结果。我不明白 在之前的帖子中,有人告诉我ggplot2中的函数“stat_function”,它类似于“curve”-函数,但我没有得到相同的结果 第一。方法(带曲线): 现在,当我在这两种情况下开始绘制.data(xy)时,我分别得到以下曲线: 这正是我所期望的。但当我开始“画画”时,我得到: 第一。方法E(如预期的那样): 第二。方法(错误) 现在的问题是:-) 我该怎么做才能得到与第一节相同的曲线。方法有人能

大家好,我在绘制数据方面遇到了一些麻烦。我得到了两种方法,它们都给出了不同的结果。我不明白

在之前的帖子中,有人告诉我ggplot2中的函数“stat_function”,它类似于“curve”-函数,但我没有得到相同的结果

第一。方法(带曲线):

现在,当我在这两种情况下开始绘制.data(xy)时,我分别得到以下曲线:

这正是我所期望的。但当我开始“画画”时,我得到:

第一。方法E(如预期的那样):

第二。方法(错误)

现在的问题是:-)

我该怎么做才能得到与第一节相同的曲线。方法有人能帮忙吗?我什么都试累了


谢谢大家

我想你要找的答案可能在某处找到。这是一两年前的问题,展示了如何将logit和probit模型拟合到ggplot2曲线的非常好的示例。 我相信你要找的是符合

stat_smooth(method="glm",family="binomial",link="probit")
但是,你可能需要花点时间来让它发挥作用。当我尝试使用您的数据集的子集时,出现了一个错误

Error in eval(expr, envir, enclos) : y values must be 0 <= y <= 1

eval(expr,envir,enclose)中的错误:y值必须为0
ggplot2
有一点不同的思想:您必须捕获一个现有的绘图作为对象,
p
,然后
p+stat\u函数
,而您正在尝试(粗略地说)
p;统计功能
。使用例如
draw.data(xy)+draw.probit(,add=T)
代替。这正是我想要的。。。但是有点太晚了:-)
> xy
        x          y
 [1,] -10 1.14259527
 [2,]  -9 1.15024188
 [3,]  -8 1.10517450
 [4,]  -7 1.00961311
 [5,]  -6 0.71238360
 [6,]  -5 0.20355333
 [7,]  -4 0.04061895
 [8,] -10 1.11022461
 [9,]  -9 1.11083317
[10,]  -8 1.07867942
[11,]  -7 0.98422000
[12,]  -6 0.73539660
[13,]  -5 0.36134577
[14,]  -4 0.18124645
[15,] -10 2.13212408
[16,]  -9 1.14529425
[17,]  -8 1.25102307
[18,]  -7 1.16045169
[19,]  -6 0.50321380
[20,]  -5 0.15422609
[21,]  -4 0.10198811
[22,] -10 1.16539392
[23,]  -9 1.15855333
[24,]  -8 1.11766975
[25,]  -7 0.97204379
[26,]  -6 0.53504417
[27,]  -5 0.17431435
[28,]  -4 0.29470416
[29,] -10 1.03683145
[30,]  -9 1.07524250
[31,]  -8 1.07761291
[32,]  -7 0.96401682
[33,]  -6 0.78346457
[34,]  -5 0.32783725
[35,]  -4 0.08103084
[36,] -10 0.81372339
[37,]  -9 0.85402909
[38,]  -8 0.86584396
[39,]  -7 0.80705470
[40,]  -6 0.53086151
[41,]  -5 0.15711034
[42,]  -4 0.11496499
> draw.probit(beta1 -4.827511, beta2 = -0.8401166, minv = 0.05, maxv = 1, add = T)
mapping: x = x, y = y, group = model, colour = model 
geom_line:  
stat_function: fun = function (x) 
{
    f.probit(x, beta1 = beta1, beta2 = beta2, minv = minv, maxv = maxv)
}, n = 101, args = list() 
position_identity: (width = NULL, height = NULL)
> 
stat_smooth(method="glm",family="binomial",link="probit")
Error in eval(expr, envir, enclos) : y values must be 0 <= y <= 1