R ggplot2:使用ggplot2绘制曲线
大家好,我在绘制数据方面遇到了一些麻烦。我得到了两种方法,它们都给出了不同的结果。我不明白 在之前的帖子中,有人告诉我ggplot2中的函数“stat_function”,它类似于“curve”-函数,但我没有得到相同的结果 第一。方法(带曲线): 现在,当我在这两种情况下开始绘制.data(xy)时,我分别得到以下曲线: 这正是我所期望的。但当我开始“画画”时,我得到: 第一。方法E(如预期的那样): 第二。方法(错误) 现在的问题是:-) 我该怎么做才能得到与第一节相同的曲线。方法有人能帮忙吗?我什么都试累了R ggplot2:使用ggplot2绘制曲线,r,ggplot2,curve,R,Ggplot2,Curve,大家好,我在绘制数据方面遇到了一些麻烦。我得到了两种方法,它们都给出了不同的结果。我不明白 在之前的帖子中,有人告诉我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值必须为0ggplot2
有一点不同的思想:您必须捕获一个现有的绘图作为对象,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