Re: [R] Adding different output to different lattice panels
On 6/28/07, Alexandre Salvador <[EMAIL PROTECTED]> wrote: > Selon [EMAIL PROTECTED]: > > > On 6/28/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > > I would like to add a reference line to lattice graphs, with the reference > > > line > > > being different according to the factor level. > > > > > > Example : Draw 3 dotplots for "a","b" and "c" factors, and then add an > > > horizontal line at y=10 for panel "a", y=8 for panel "b" and y=6 for panel > > > "4" > > > > > > I tried the code below, but this draw all three reference lines for each > > > panel. > > > How do I index the current panel to chose the right reference vector value > > ? > > > > > > > > > dat<-data.frame(id=rep(c("a","b","c"),4),val=1:12,quand=rep(c("t1","t2","t3","t4"),each=3)) > > > ref<-c(10,8,6) > > > plot.new() > > > datplot<-dotplot(val~quand|id,data=dat,panel=function(...){ > > > panel.dotplot(...) > > > panel.abline(h=ref) > > > }) > > > print(datplot) > > > > dotplot(val~quand|id,data=dat,panel=function(...){ > > panel.dotplot(...) > > panel.abline(h = ref[packet.number()]) > > }) > > > > (Things are more complicated if you have more than one conditioning > > variable.) > > > > -Deepayan > > > > I tried you solution, but the following error appears when I print(datplot): > >Erreur dans as.numeric(h) : impossible de trouver la fonction > "packet.number" > > I have lattice and grid libraries loaded. The exact code I use is > datplot<-dotplot(val~quand|id,data=dat,panel=function(...){ > panel.dotplot(...) > panel.abline(h=ref[packet.number()]) > }) > print(datplot) > What do I do wrong ? You are using a very old version of R (or at least old enough that the packet.number number didn't exist). You haven't told us what version you are using. I would encourage you to upgrade, but this might work for now: dotplot(val~quand|id,data=dat, panel=function(..., panel.number){ panel.dotplot(...) panel.abline(h = ref[panel.number]) }) > Note : I usually need to use the indirect datplot<-dotplot(... and then > print(datplot) when I store my code in a file and use it through > source("myfile.R"). The direct dotplot(... does not open a device whereas it > does if I type directly dotplot(... at the R command line... > Is this normal ? Yes, and a FAQ: http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-do-lattice_002ftrellis-graphics-not-work_003f -Deepayan __ R-help@stat.math.ethz.ch 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] Adding different output to different lattice panels
Selon Deepayan Sarkar <[EMAIL PROTECTED]>: > On 6/28/07, Alexandre Salvador <[EMAIL PROTECTED]> wrote: > > Selon [EMAIL PROTECTED]: > > > > > On 6/28/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > > > I would like to add a reference line to lattice graphs, with the > reference > > > > line > > > > being different according to the factor level. > > > > > > > > Example : Draw 3 dotplots for "a","b" and "c" factors, and then add an > > > > horizontal line at y=10 for panel "a", y=8 for panel "b" and y=6 for > panel > > > > "4" > > > > > > > > I tried the code below, but this draw all three reference lines for > each > > > > panel. > > > > How do I index the current panel to chose the right reference vector > value > > > ? > > > > > > > > > > > > > > dat<-data.frame(id=rep(c("a","b","c"),4),val=1:12,quand=rep(c("t1","t2","t3","t4"),each=3)) > > > > ref<-c(10,8,6) > > > > plot.new() > > > > datplot<-dotplot(val~quand|id,data=dat,panel=function(...){ > > > > panel.dotplot(...) > > > > panel.abline(h=ref) > > > > }) > > > > print(datplot) > > > > > > dotplot(val~quand|id,data=dat,panel=function(...){ > > > panel.dotplot(...) > > > panel.abline(h = ref[packet.number()]) > > > }) > > > > > > (Things are more complicated if you have more than one conditioning > > > variable.) > > > > > > -Deepayan > > > > > > > I tried you solution, but the following error appears when I > print(datplot): > > > >Erreur dans as.numeric(h) : impossible de trouver la fonction > "packet.number" > > > > I have lattice and grid libraries loaded. The exact code I use is > > datplot<-dotplot(val~quand|id,data=dat,panel=function(...){ > > panel.dotplot(...) > > panel.abline(h=ref[packet.number()]) > > }) > > print(datplot) > > What do I do wrong ? > > You are using a very old version of R (or at least old enough that the > packet.number number didn't exist). You haven't told us what version > you are using. > > I would encourage you to upgrade, but this might work for now: > > dotplot(val~quand|id,data=dat, > panel=function(..., panel.number){ > panel.dotplot(...) > panel.abline(h = ref[panel.number]) > }) > > > Note : I usually need to use the indirect datplot<-dotplot(... and then > > print(datplot) when I store my code in a file and use it through > > source("myfile.R"). The direct dotplot(... does not open a device whereas > it > > does if I type directly dotplot(... at the R command line... > > Is this normal ? > > Yes, and a FAQ: > > http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-do-lattice_002ftrellis-graphics-not-work_003f > > -Deepayan > Works all right, I use Version 2.3.1 (2006-06-01) I'll upgrade to the newer versions... Thanks very much, Cheers -- Alexandre Salvador Tel: +33(0)6.8214.7733 __ R-help@stat.math.ethz.ch 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] Adding different output to different lattice panels
Selon [EMAIL PROTECTED]: > On 6/28/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > I would like to add a reference line to lattice graphs, with the reference > > line > > being different according to the factor level. > > > > Example : Draw 3 dotplots for "a","b" and "c" factors, and then add an > > horizontal line at y=10 for panel "a", y=8 for panel "b" and y=6 for panel > > "4" > > > > I tried the code below, but this draw all three reference lines for each > > panel. > > How do I index the current panel to chose the right reference vector value > ? > > > > > dat<-data.frame(id=rep(c("a","b","c"),4),val=1:12,quand=rep(c("t1","t2","t3","t4"),each=3)) > > ref<-c(10,8,6) > > plot.new() > > datplot<-dotplot(val~quand|id,data=dat,panel=function(...){ > > panel.dotplot(...) > > panel.abline(h=ref) > > }) > > print(datplot) > > dotplot(val~quand|id,data=dat,panel=function(...){ > panel.dotplot(...) > panel.abline(h = ref[packet.number()]) > }) > > (Things are more complicated if you have more than one conditioning > variable.) > > -Deepayan > I tried you solution, but the following error appears when I print(datplot): Erreur dans as.numeric(h) : impossible de trouver la fonction "packet.number" I have lattice and grid libraries loaded. The exact code I use is datplot<-dotplot(val~quand|id,data=dat,panel=function(...){ panel.dotplot(...) panel.abline(h=ref[packet.number()]) }) print(datplot) What do I do wrong ? Note : I usually need to use the indirect datplot<-dotplot(... and then print(datplot) when I store my code in a file and use it through source("myfile.R"). The direct dotplot(... does not open a device whereas it does if I type directly dotplot(... at the R command line... Is this normal ? -- Alexandre Salvador Tel: +33(0)6.8214.7733 __ R-help@stat.math.ethz.ch 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] Adding different output to different lattice panels
On 6/28/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > I would like to add a reference line to lattice graphs, with the reference > line > being different according to the factor level. > > Example : Draw 3 dotplots for "a","b" and "c" factors, and then add an > horizontal line at y=10 for panel "a", y=8 for panel "b" and y=6 for panel > "4" > > I tried the code below, but this draw all three reference lines for each > panel. > How do I index the current panel to chose the right reference vector value ? > > dat<-data.frame(id=rep(c("a","b","c"),4),val=1:12,quand=rep(c("t1","t2","t3","t4"),each=3)) > ref<-c(10,8,6) > plot.new() > datplot<-dotplot(val~quand|id,data=dat,panel=function(...){ > panel.dotplot(...) > panel.abline(h=ref) > }) > print(datplot) dotplot(val~quand|id,data=dat,panel=function(...){ panel.dotplot(...) panel.abline(h = ref[packet.number()]) }) (Things are more complicated if you have more than one conditioning variable.) -Deepayan __ R-help@stat.math.ethz.ch 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] Adding different output to different lattice panels
On 6/28/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > I would like to add a reference line to lattice graphs, with the reference > line > being different according to the factor level. > > Example : Draw 3 dotplots for "a","b" and "c" factors, and then add an > horizontal line at y=10 for panel "a", y=8 for panel "b" and y=6 for panel "4" It's quite easy to do this with ggplot2 (http://had.co.nz/ggplot2) - see http://had.co.nz/ggplot2/geom_vline.html for examples of both common and specific reference lines. Hadley __ R-help@stat.math.ethz.ch 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.