Hi Rosa, I have had a moment to look at your code. First I think you should start your device as:
quartz(width=12,height=5) The split.screen code that I sent seems to work for me, giving the 3 4 5 6 2 7 8 9 10 layout of screens. To get the aspect ratio of the plots more similar, try this: # do the first split, to get the rightmost screen for the legend split.screen(figs=matrix(c(0,0.84,0,1,0.84,1,0,1),nrow=2,byrow=TRUE)) # now split the first screen to get your eight screens (numbered 3 to 10) for the plots split.screen(figs=matrix(c(0,0.31,0.5,1, 0.31,0.54,0.5,1, 0.54,0.77,0.5,1, 0.77,1,0.5,1, 0,0.31,0,0.5, 0.31,0.54,0,0.5, 0.54,0.77,0,0.5, 0.77,1,0,0.5), ncol=4,byrow=TRUE),screen=1) I'm not sure of which plots should go on the top line and which on the bottom, but I think you want margins like this: screen(3) par(mar=c(0,3.5,3,0)) screen(4) par(mar=c(0,0,3,0)) screen(5) par(mar=c(0,0,3,0)) screen(6) par(mar=c(0,0,3,0)) screen(7) par(mar=c(3,3.5,0,0)) screen(8) par(mar=c(3,0,3,0)) screen(9) par(mar=c(3,0,3,0)) screen(10) par(mar=c(3,0,3,0)) Perhaps this will help. Jim On Fri, Sep 18, 2015 at 6:14 AM, Jim Lemon <drjimle...@gmail.com> wrote: > Hi Rosa, > I don't think the problem is with the split.screen command, for you are > getting the eight plots and the screen at the right as you requested. It > looks like your margins for each plot need adjusting, and I also think you > should have about a 2.2 to 1 width to height ratio in the graphics device. > I can't analyze the rest of the code at the moment, but perhaps tomorrow if > you can't work it out I can provide some suggestions. > > Jim > > > On Fri, Sep 18, 2015 at 1:16 AM, Rosa Oliveira <rosit...@gmail.com> wrote: > >> Dear Jim, >> >> It works, nonetheless, it doesn't slip the screen correctly :( >> >> Do you have any idea? >> >> >> I used the code: >> >> >> #setwd("/Users/RO/Dropbox/LMER - 3rdproblem/R/latest_version/graphs/data") >> setwd("~/Dropbox/LMER - 3rdproblem/R/latest_version/graphs/data") >> >> >> library(ggplot2) >> library(reshape) >> library(lattice) >> >> >> # read in what looks like half of the data >> >> bias.alpha2<-read.csv("graphs_bias_alpha2.csv") >> SE.alpha2<-read.csv("graphs_SE_alpha2.csv") >> bias.alpha1<-read.csv("graphs_bias_alpha1.csv") >> SE.alpha1<-read.csv("graphs_SE_alpha1.csv") >> >> >> >> quartz(width=10,height=6) >> >> # do the first split, to get the rightmost screen for the legend >> split.screen(figs=matrix(c(0,0.84,0,1,0.84,1,0,1),nrow=2,byrow=TRUE)) >> # now split the first screen to get your eight screens (numbered 3 to 10) >> for the plots >> split.screen(figs=matrix(c(0,0.25,0.5,1, >> 0.25,0.5,0.5,1, >> 0.5,0.75,0.5,1, >> 0.75,1,0.5,1, >> 0,0.25,0,0.5, >> 0.25,0.5,0,0.5, >> 0.5,0.75,0,0.5, >> 0.75,1,0,0.5), >> ncol=4,byrow=TRUE),screen=1) >> >> >> >> #split.screen(figs=matrix(c(0,0.5,0.5,1,#primeira linha primeira coluna >> # 0.5,1,0.5,1,#primeira linha segunda coluna >> # 0,0.5,0,0.5,#segunda linha primeira coluna >> # 0.5,1,0,0.5),#segunda linha segunda coluna >> # ncol=4,byrow=TRUE),screen=1) >> >> >> # this produces seven screens numbered like this: >> # 3 4 5 6 >> # 2 >> # 7 8 9 10 >> # select the upper left screen >> >> >> >> screen(3) >> par(mar=c(0,3.5,3,0)) >> # now the second set >> n250<-bias.alpha1$nsample==250 >> matplot(x=bias.alpha1$lambda[n250],y=bias.alpha1[n250,3:5], >> type="l",pch=1:3,col=c(4,2,3),xaxt="n",ylim=c(-.1, >> .6),main="nsample=250",ylab="", cex.main=1) >> abline(h = 0, col = "gray60") >> mtext(expression(paste("Bias av. for ",alpha[1])),side=2,line=2, >> cex.main=1) >> >> screen(4) >> par(mar=c(0,0,3,0)) >> # now the second set >> n1000<-bias.alpha1$nsample==1000 >> matplot(x=bias.alpha1$lambda[n1000],y=bias.alpha1[n1000,3:5], >> type="l",pch=1:3,col=c(4,2,3),xaxt="n",yaxt="n",ylim=c(-.1, >> .6),main="nsample=1000",ylab="") >> abline(h = 0, col = "gray60") >> >> >> >> screen(5) >> par(mar=c(0,3.5,3,0)) >> # now the second set >> par(mar=c(3,3.5,0,0)) >> # now the second set >> n250<-bias.alpha2$nsample==250 >> matplot(x=bias.alpha2$lambda[n250],y=bias.alpha2[n250,3:5], >> type="l",pch=1:3,col=c(4,2,3),ylim=c(-.1, .6),ylab="") >> abline(h = 0, col = "gray60") >> mtext(expression(paste("Bias av. for ",alpha[2])),side=2,line=2, >> cex.main=1.5) >> >> screen(6) >> par(mar=c(3,0,0,0)) >> # now the second set >> n1000<-bias.alpha2$nsample==1000 >> matplot(x=bias.alpha2$lambda[n1000],y=bias.alpha2[n1000,3:5], >> type="l",pch=1:3,col=c(4,2,3),yaxt="n",ylim=c(-.1, .6)) >> abline(h = 0, col = "gray60") >> >> >> >> >> screen(7) >> par(mar=c(0,3.5,3,0)) >> # now the second set >> n250<-SE.alpha1$nsample==250 >> matplot(x=SE.alpha1$lambda[n250],y=SE.alpha1[n250,3:5], >> type="l",pch=1:3,col=c(4,2,3),xaxt="n",ylim=c(0, >> 1.1),main="nsample=250",ylab="", cex.main=1) >> abline(h = -1, col = "gray60") >> mtext(expression(paste("SE av. for ",alpha[1])),side=2,line=2, >> cex.main=1) >> mtext(expression(paste(lambda)),side=1,line=2, cex.main=1.5) >> >> >> screen(8) >> par(mar=c(0,0,3,0)) >> # now the second set >> n1000<-SE.alpha1$nsample==1000 >> matplot(x=SE.alpha1$lambda[n1000],y=SE.alpha1[n1000,3:5], >> type="l",pch=1:3,col=c(4,2,3),xaxt="n",yaxt="n",ylim=c(0, >> 1.1),main="nsample=1000",ylab="") >> abline(h = -1, col = "gray60") >> >> >> >> >> screen(9) >> par(mar=c(3,3.5,0,0)) >> # now the second set >> n250<-SE.alpha2$nsample==250 >> matplot(x=SE.alpha2$lambda[n250],y=SE.alpha2[n250,3:5], >> type="l",pch=1:3,col=c(4,2,3),ylim=c(0, 1.1),ylab="") >> abline(h = -.5, col = "gray60") >> mtext(expression(paste("SE av. for ",alpha[2])),side=2,line=2, >> cex.main=1.5) >> mtext(expression(paste(lambda)),side=1,line=2, cex.main=1.5) >> >> >> screen(10) >> par(mar=c(3,0,0,0)) >> # now the second set >> n1000<-SE.alpha2$nsample==1000 >> matplot(x=SE.alpha2$lambda[n1000],y=SE.alpha2[n1000,3:5], >> type="l",pch=1:3,col=c(4,2,3),yaxt="n",ylim=c(0, 1.1)) >> abline(h = -.5, col = "gray60") >> mtext(expression(paste(lambda)),side=1,line=2, , cex.main=1.5) >> >> >> >> screen(2) >> par(mar=c(0,0,0,0)) >> # plot an empty plot to get the coordinates >> plot(0:1,0:1,type="n",axes=FALSE) >> legend(0,0.6,c("OLS", "GLS", "Reg. Cal.", "0"),bty = "n", >> lty=1:3,col=c(4,2,3,"gray60"),xpd=TRUE) >> >> >> close.screen(all=TRUE) >> >> >> and I attach the output graph. >> >> >> >> Best, >> RO >> >> Atenciosamente, >> Rosa Oliveira >> >> _________________________________ >> >> Antes de imprimir este e-mail pense bem se tem mesmo que o fazer. >> Há cada vez menos árvores. >> Não imprima, pense na sua responsabilidade e compromisso com o MEIO >> AMBIENTE! >> >> <http://pt.dreamstime.com/cora-ccedil-atildeo-criado-das-folhas-de-aacutervores-diferentes-thumb12275776.jpg> >> >> <http://pt.dreamstime.com/cora-ccedil-atildeo-criado-das-folhas-de-aacutervores-diferentes-thumb12275776.jpg> >> >> 2015-09-17 12:18 GMT+01:00 Jim Lemon <drjimle...@gmail.com>: >> >>> Hi Rosa, >>> Try this: >>> >>> # do the first split, to get the rightmost screen for the legend >>> split.screen(figs=matrix(c(0,0.84,0,1,0.84,1,0,1),nrow=2,byrow=TRUE)) >>> # now split the first screen to get your eight screens (numbered 3 to >>> 10) for the plots >>> split.screen(figs=matrix(c(0,0.25,0.5,1, >>> 0.25,0.5,0.5,1, >>> 0.5,0.75,0.5,1, >>> 0.75,1,0.5,1, >>> 0,0.25,0,0.5, >>> 0.25,0.5,0,0.5, >>> 0.5,0.75,0,0.5, >>> 0.75,1,0,0.5), >>> ncol=4,byrow=TRUE),screen=1) >>> >>> Jim >>> >>> >>> On Thu, Sep 17, 2015 at 2:45 AM, Rosa Oliveira <rosit...@gmail.com> >>> wrote: >>> >>>> Dear all, >>>> >>>> I’m trying to do a graph, >>>> >>>> 3 rows, 5 columns, with the design: >>>> # 3 4 5 6 >>>> # 2 >>>> # 7 8 9 10 >>>> >>>> I had a code for 3 rows, 3 columns, with the design:: >>>> # 3 4 >>>> # 2 >>>> # 7 8 >>>> and I tried to modify it, but I had no success :( >>>> >>>> I suppose the problem is in the slip.screen code (red part of the code). >>>> >>>> I attach my code, can anyone please help me? >>>> >>>> >>>> Best, >>>> RO >>>> >>>> >>>> setwd("/Users/RO/Dropbox/LMER - >>>> 3rdproblem/R/latest_version/graphs/data") >>>> >>>> library(ggplot2) >>>> library(reshape) >>>> library(lattice) >>>> >>>> >>>> # read in what looks like half of the data >>>> >>>> bias.alpha2<-read.csv("graphs_bias_alpha2.csv") >>>> SE.alpha2<-read.csv("graphs_SE_alpha2.csv") >>>> bias.alpha1<-read.csv("graphs_bias_alpha1.csv") >>>> SE.alpha1<-read.csv("graphs_SE_alpha1.csv") >>>> >>>> >>>> >>>> quartz(width=10,height=6) >>>> # do the first split, to get the rightmost screen for the legend >>>> split.screen(figs=matrix(c(0,0.8,0,1,0.8,1,0,1),nrow=2,byrow=TRUE)) >>>> # now split the first screen to get your six screens for the plots >>>> >>>> >>>> >>>> split.screen(figs=matrix(c(0,0.5,0.5,1,#primeira linha primeira coluna >>>> 0.5,1,0.5,1,#primeira linha segunda coluna >>>> 0,0.5,0,0.5,#segunda linha primeira coluna >>>> 0.5,1,0,0.5),#segunda linha segunda coluna >>>> ncol=4,byrow=TRUE),screen=1) >>>> >>>> >>>> # this produces seven screens numbered like this: >>>> # 3 4 5 6 >>>> # 2 >>>> # 7 8 9 10 >>>> # select the upper left screen >>>> >>>> >>>> >>>> screen(3) >>>> par(mar=c(0,3.5,3,0)) >>>> # now the second set >>>> n250<-bias.alpha1$nsample==250 >>>> matplot(x=bias.alpha1$lambda[n250],y=bias.alpha1[n250,3:5], >>>> type="l",pch=1:3,col=c(4,2,3),xaxt="n",ylim=c(-.1, >>>> .6),main="nsample=250",ylab="", cex.main=1) >>>> abline(h = 0, col = "gray60") >>>> mtext(expression(paste("Bias av. for ",alpha[1])),side=2,line=2, >>>> cex.main=1) >>>> >>>> screen(4) >>>> par(mar=c(0,0,3,0)) >>>> # now the second set >>>> n1000<-bias.alpha1$nsample==1000 >>>> matplot(x=bias.alpha1$lambda[n1000],y=bias.alpha1[n1000,3:5], >>>> type="l",pch=1:3,col=c(4,2,3),xaxt="n",yaxt="n",ylim=c(-.1, >>>> .6),main="nsample=1000",ylab="") >>>> abline(h = 0, col = "gray60") >>>> >>>> >>>> >>>> screen(5) >>>> par(mar=c(0,3.5,3,0)) >>>> # now the second set >>>> par(mar=c(3,3.5,0,0)) >>>> # now the second set >>>> n250<-bias.alpha2$nsample==250 >>>> matplot(x=bias.alpha2$lambda[n250],y=bias.alpha2[n250,3:5], >>>> type="l",pch=1:3,col=c(4,2,3),ylim=c(-.1, .6),ylab="") >>>> abline(h = 0, col = "gray60") >>>> mtext(expression(paste("Bias av. for ",alpha[2])),side=2,line=2, >>>> cex.main=1.5) >>>> >>>> screen(6) >>>> par(mar=c(3,0,0,0)) >>>> # now the second set >>>> n1000<-bias.alpha2$nsample==1000 >>>> matplot(x=bias.alpha2$lambda[n1000],y=bias.alpha2[n1000,3:5], >>>> type="l",pch=1:3,col=c(4,2,3),yaxt="n",ylim=c(-.1, .6)) >>>> abline(h = 0, col = "gray60") >>>> >>>> >>>> >>>> >>>> screen(7) >>>> par(mar=c(0,3.5,3,0)) >>>> # now the second set >>>> n250<-SE.alpha1$nsample==250 >>>> matplot(x=SE.alpha1$lambda[n250],y=SE.alpha1[n250,3:5], >>>> type="l",pch=1:3,col=c(4,2,3),xaxt="n",ylim=c(0, >>>> 1.1),main="nsample=250",ylab="", cex.main=1) >>>> abline(h = -1, col = "gray60") >>>> mtext(expression(paste("SE av. for ",alpha[1])),side=2,line=2, >>>> cex.main=1) >>>> mtext(expression(paste(lambda)),side=1,line=2, cex.main=1.5) >>>> >>>> >>>> screen(8) >>>> par(mar=c(0,0,3,0)) >>>> # now the second set >>>> n1000<-SE.alpha1$nsample==1000 >>>> matplot(x=SE.alpha1$lambda[n1000],y=SE.alpha1[n1000,3:5], >>>> type="l",pch=1:3,col=c(4,2,3),xaxt="n",yaxt="n",ylim=c(0, >>>> 1.1),main="nsample=1000",ylab="") >>>> abline(h = -1, col = "gray60") >>>> >>>> >>>> >>>> >>>> screen(9) >>>> par(mar=c(3,3.5,0,0)) >>>> # now the second set >>>> n250<-SE.alpha2$nsample==250 >>>> matplot(x=SE.alpha2$lambda[n250],y=SE.alpha2[n250,3:5], >>>> type="l",pch=1:3,col=c(4,2,3),ylim=c(0, 1.1),ylab="") >>>> abline(h = -.5, col = "gray60") >>>> mtext(expression(paste("SE av. for ",alpha[2])),side=2,line=2, >>>> cex.main=1.5) >>>> mtext(expression(paste(lambda)),side=1,line=2, cex.main=1.5) >>>> >>>> >>>> screen(10) >>>> par(mar=c(3,0,0,0)) >>>> # now the second set >>>> n1000<-SE.alpha2$nsample==1000 >>>> matplot(x=SE.alpha2$lambda[n1000],y=SE.alpha2[n1000,3:5], >>>> type="l",pch=1:3,col=c(4,2,3),yaxt="n",ylim=c(0, 1.1)) >>>> abline(h = -.5, col = "gray60") >>>> mtext(expression(paste(lambda)),side=1,line=2, , cex.main=1.5) >>>> >>>> >>>> >>>> screen(2) >>>> par(mar=c(0,0,0,0)) >>>> # plot an empty plot to get the coordinates >>>> plot(0:1,0:1,type="n",axes=FALSE) >>>> legend(0,0.6,c("OLS", "GLS", "Reg. Cal.", "0"),bty = "n", >>>> lty=1:3,col=c(4,2,3,"gray60"),xpd=TRUE) >>>> >>>> >>>> close.screen(all=TRUE) >>>> >>>> >>>> >>>> >>>> Best, >>>> RO >>>> >>>> >>>> Atenciosamente, >>>> Rosa Oliveira >>>> >>>> -- >>>> >>>> ____________________________________________________________________________ >>>> >>>> >>>> Rosa Celeste dos Santos Oliveira, >>>> >>>> E-mail: rosit...@gmail.com >>>> Tlm: +351 939355143 >>>> Linkedin: https://pt.linkedin.com/in/rosacsoliveira >>>> >>>> ____________________________________________________________________________ >>>> "Many admire, few know" >>>> Hippocrates >>>> >>>> ______________________________________________ >>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>> 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. >>> >>> >>> >> > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.