[R] plotting a function with given formula in ggplot2

2011-11-10 Thread Curiouslearn
Hi All,

I have a scatter plot produced using ggplot2 and I want to add the
regression line to this scatter plot. I suppose I can use
geom_smooth() to do this, but for the sake of learning ( I am new both
to R and ggplot2), I want to try and add it as a function (something
that curve() does in the standard R plotting). I did some search and
found that stat_function() can be used for this. But somehow it is not
working. The following is my code. Can you please tell me where I am
going wrong and what the correct code would be:

reg1 - lm(kid_score ~ mom_hs, data=iqdata)

scatter  -  ggplot() + geom_point(data=iqdata,

aes(x=as.factor(mom_hs), y=kid_score) )
   + xlab(Mother's High School Status)
   + ylab(Children's Test Score)
   + stat_function(fun=function(x)
coef(reg1)[1] + coef(reg1)[2] * x)

I understand that you probably do not have the data I am using (I am
trying this out from Gelman Hill's book on Multilevel models). But I
was hoping you may be able to point out the error without the data.

Thanks for your help.

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] plotting a function with given formula in ggplot2

2011-11-10 Thread Curiouslearn
Thanks Rainer. I did not know about dput(). Here is the data.

mom_hs - c(1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0,
1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1,
0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1,
1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1,
1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1,
1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1,
1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1,
1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1,
0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1)

and,

kid_score - c(65L, 98L, 85L, 83L, 115L, 98L, 69L, 106L, 102L, 95L, 91L, 58L,
84L, 78L, 102L, 110L, 102L, 99L, 105L, 101L, 102L, 115L, 100L,
87L, 99L, 96L, 72L, 78L, 77L, 98L, 69L, 130L, 109L, 106L, 92L,
100L, 107L, 86L, 90L, 110L, 107L, 113L, 65L, 102L, 103L, 111L,
42L, 100L, 67L, 92L, 100L, 110L, 56L, 107L, 97L, 56L, 95L, 78L,
76L, 86L, 79L, 81L, 79L, 79L, 56L, 52L, 63L, 80L, 87L, 88L, 92L,
100L, 94L, 117L, 102L, 107L, 99L, 73L, 56L, 78L, 94L, 110L, 109L,
86L, 92L, 91L, 123L, 102L, 105L, 114L, 96L, 66L, 104L, 108L,
84L, 83L, 83L, 92L, 109L, 95L, 93L, 114L, 106L, 87L, 65L, 95L,
61L, 73L, 112L, 113L, 49L, 105L, 122L, 96L, 97L, 94L, 117L, 136L,
85L, 116L, 106L, 99L, 94L, 89L, 119L, 112L, 104L, 92L, 86L, 69L,
45L, 57L, 94L, 104L, 89L, 144L, 52L, 102L, 106L, 98L, 97L, 94L,
111L, 100L, 105L, 90L, 98L, 121L, 106L, 121L, 102L, 64L, 99L,
81L, 69L, 84L, 104L, 104L, 107L, 88L, 67L, 103L, 94L, 109L, 94L,
98L, 102L, 104L, 114L, 87L, 102L, 77L, 109L, 94L, 93L, 86L, 97L,
97L, 88L, 103L, 87L, 87L, 90L, 65L, 111L, 109L, 87L, 58L, 87L,
113L, 64L, 78L, 97L, 95L, 75L, 91L, 99L, 108L, 95L, 100L, 85L,
97L, 108L, 90L, 100L, 82L, 94L, 95L, 119L, 98L, 100L, 112L, 136L,
122L, 126L, 116L, 98L, 94L, 93L, 90L, 70L, 110L, 104L, 83L, 99L,
81L, 104L, 109L, 113L, 95L, 74L, 81L, 89L, 93L, 102L, 95L, 85L,
97L, 92L, 78L, 104L, 120L, 83L, 105L, 68L, 104L, 80L, 120L, 94L,
81L, 101L, 61L, 68L, 110L, 89L, 98L, 113L, 50L, 57L, 86L, 83L,
106L, 106L, 104L, 78L, 99L, 91L, 40L, 42L, 69L, 84L, 58L, 42L,
72L, 80L, 58L, 52L, 101L, 63L, 73L, 68L, 60L, 69L, 73L, 75L,
20L, 56L, 49L, 71L, 46L, 54L, 54L, 44L, 74L, 58L, 46L, 76L, 43L,
60L, 58L, 89L, 43L, 94L, 88L, 79L, 87L, 46L, 95L, 92L, 42L, 62L,
52L, 101L, 97L, 85L, 98L, 94L, 90L, 72L, 92L, 75L, 83L, 64L,
101L, 82L, 77L, 101L, 50L, 90L, 103L, 96L, 50L, 47L, 73L, 62L,
77L, 64L, 52L, 61L, 86L, 41L, 83L, 64L, 83L, 116L, 100L, 42L,
74L, 76L, 92L, 98L, 96L, 67L, 84L, 111L, 41L, 68L, 107L, 82L,
89L, 83L, 73L, 74L, 94L, 58L, 76L, 61L, 38L, 100L, 84L, 99L,
86L, 94L, 90L, 50L, 112L, 58L, 87L, 76L, 68L, 110L, 88L, 87L,
54L, 49L, 56L, 79L, 82L, 80L, 60L, 102L, 87L, 42L, 119L, 84L,
86L, 113L, 72L, 104L, 94L, 78L, 80L, 67L, 104L, 96L, 65L, 64L,
95L, 56L, 75L, 91L, 106L, 76L, 90L, 108L, 86L, 85L, 104L, 87L,
41L, 106L, 76L, 100L, 89L, 42L, 102L, 104L, 59L, 93L, 94L, 76L,
50L, 88L, 70L)

Thanks again.

Bharat

On Thu, Nov 10, 2011 at 3:35 PM, Rainer Schuermann
rainer.schuerm...@gmx.net wrote:
 You can use dput() to share your data. It is very difficult to replicate a
 certain problem without concrete data, and if you want to encourage people
 to look into your problem, you should make it easy. Pasting data from a
 dput() output takes half a second instead of minutes otherwise spent with
 making up data that might not even fit to the problem!

 Rgds,
 Rainer


 On Thursday 10 November 2011 13:47:10 Curiouslearn wrote:
 Hi All,

 I have a scatter plot produced using ggplot2 and I want to add the
 regression line to this scatter plot. I suppose I can use
 geom_smooth() to do this, but for the sake of learning ( I am new both
 to R and ggplot2), I want to try and add it as a function (something
 that curve() does in the standard R plotting). I did some search and
 found that stat_function() can be used for this. But somehow it is not
 working. The following is my code. Can you please tell me where I am
 going wrong and what the correct code would be:

 reg1 - lm(kid_score ~ mom_hs, data=iqdata)

 scatter  -  ggplot() + geom_point(data=iqdata,

 aes(x=as.factor(mom_hs), y=kid_score) )
                                + xlab(Mother's High School Status)
                  

Re: [R] plotting a function with given formula in ggplot2

2011-11-10 Thread Dennis Murphy
Hi:

Borrowing from this thread, courtesy of Brian Diggs:
http://groups.google.com/group/ggplot2/browse_thread/thread/478f9e61d41b4678/ed323c497db61156?lnk=gstq=stat_function#ed323c497db61156

...here's a small reproducible example:

ddf - data.frame(x = 1:10, y = 0.4 + 0.6 * (1:10) + rnorm(10))
# Find the linear model coefficients
lmc - coef(lm(y ~ x, data = ddf))
# Create a function to produce the fitted line
lmeq - function(x) lmc[1] + lmc[2] * x

# Construct the ggplot() and use stat_function():
ggplot(ddf, aes(x = x, y = y)) +
geom_point() +
stat_function(fun = lmeq, colour = 'red', size = 1)

HTH,
Dennis

On Thu, Nov 10, 2011 at 10:47 AM, Curiouslearn curiousle...@gmail.com wrote:
 Hi All,

 I have a scatter plot produced using ggplot2 and I want to add the
 regression line to this scatter plot. I suppose I can use
 geom_smooth() to do this, but for the sake of learning ( I am new both
 to R and ggplot2), I want to try and add it as a function (something
 that curve() does in the standard R plotting). I did some search and
 found that stat_function() can be used for this. But somehow it is not
 working. The following is my code. Can you please tell me where I am
 going wrong and what the correct code would be:

 reg1 - lm(kid_score ~ mom_hs, data=iqdata)

 scatter  -  ggplot() + geom_point(data=iqdata,

 aes(x=as.factor(mom_hs), y=kid_score) )
                               + xlab(Mother's High School Status)
                               + ylab(Children's Test Score)
                               + stat_function(fun=function(x)
 coef(reg1)[1] + coef(reg1)[2] * x)

 I understand that you probably do not have the data I am using (I am
 trying this out from Gelman Hill's book on Multilevel models). But I
 was hoping you may be able to point out the error without the data.

 Thanks for your help.

 __
 R-help@r-project.org mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
 and provide commented, minimal, self-contained, reproducible code.


__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.