2 graficos do grid lado a lado na mesma janela

Amigos de R, Eu não tenho qualquer familiaridade com o pacote grid, mas estou usando um pacote cuja principal função grafica é o com o grid. Eu gostaria de juntar os dois graficos abaixo lado a lado, e ja tentei usar algumas variaçoes do pushViewport sem sucesso. A função forest possui um argumento new que permitiria colocar mais de um grafico na mesma janela, mas sem um exemplo estou batentdo cabeça por aqui. Se alguem que tem familiaridade com o grid puder me dar uma mão, eu ficaria muito feliz. ID2 VP VN with without Q47 group 37 Cabalero ZC-2007 68 225 69 238 ELISA BIOSCHILE-TEST ELISA CHAGAS 111 Otani MM-2009 167 261 168 262 ELISA BIOSCHILE-TEST ELISA CHAGAS 124 Remesar MC-2009 340 1097 356 1099 ELISA BIOSCHILE-TEST ELISA CHAGAS 97 Anes N-2010 19 15 23 15 ELISA BIOSCHILE-TEST ELISA CHAGAS 102 Flores Chaves M-2010 66 132 66 157 ELISA BIOSCHILE-TEST ELISA CHAGAS 50 Lorca M-1992 77 98 82 98 ELISA ABBOTT-ABBOTT CHAGAS ELISA 42 Carvalho MR-1993 224 182 224 191 ELISA ABBOTT-ABBOTT CHAGAS ELISA 69 Hamerschlak N-1997 20 36 20 40 ELISA ABBOTT-ABBOTT CHAGAS ELISA 60 Oeleman WMR-1998 515 481 539 486 ELISA ABBOTT-ABBOTT CHAGAS ELISA 113 Otani MM-2009 167 257 168 262 ELISA ABBOTT-ABBOTT CHAGAS ELISA b <- read.table("clipboard",header=T) # after a ctrl+c install.packages("meta") library("meta") m.e.se <- metaprop(VP, with, studlab=ID2 ,data=b,subset=Q47=="ELISA",incr=.1,allincr=T,addincr=T,comb.fixed=F,hakn=T,title="ELISA for Chagas disease",complab='With Chagas',outclab="True positives",byvar=group,bylab='Trademark-name',print.byvar=T) m.e.sp <- metaprop(VN, without, studlab=ID2 ,data=b,subset=Q47=="ELISA",incr=.1,allincr=T,addincr=T,comb.fixed=F,hakn=T,title="ELISA for Chagas disease",complab='With Chagas',outclab="True negatives",byvar=group,bylab='Trademark-name',print.byvar=T) #tiff("C:/Banco/MetaDiagChagas_2013/resultados/Forest_ELISA_se.tiff",width=480*5.5,heigh=480*15,res=72*3) forest(m.e.se,overall=F,text.random="D&L random effects",pooled.events=T,xlab="Sensitivity",rightcols=F,leftcols=c("studlab", "event", "n","effect", "ci"),leftlabs=c("Study","TP","With","Sensitivity","95%-CI")) #dev.off() #file.show("C:/Banco/MetaDiagChagas_2013/resultados/Forest_ELISA_se.tiff") #tiff("C:/Banco/MetaDiagChagas_2013/resultados/Forest_ELISA_sp.tiff",width=480*3,heigh=480*15,res=72*3) forest(m.e.sp,overall=F,text.random="D&L random effects",pooled.events=T,xlab="Specificity",rightcols=c("effect", "ci"),leftcols=c("n","event"),leftlabs=c("TN","Without"),rightlabs=c("Specificity","95%-CI")) #dev.off() #file.show("C:/Banco/MetaDiagChagas_2013/resultados/Forest_ELISA_sp.tiff") Abraço forte a todos , Pedro Brasil

Dica: read.table('clipboard') não funciona com coisas copiadas do R. Use dput() para passar dados e a sua estrutura.

Nao seja por isso... structure(list(ID2 = c("Lorca M-1992", "Carvalho MR-1993", "Hamerschlak N-1997", "Oeleman WMR-1998", "Cabalero ZC-2007", "Otani MM-2009", "Otani MM-2009", "Remesar MC-2009", "Anes N-2010", "Flores Chaves M-2010"), VP = c(77, 224, 20, 515, 68, 167, 167, 340, 19, 66), VN = c(98, 182, 36, 481, 225, 257, 261, 1097, 15, 132), with = c(82, 224, 20, 539, 69, 168, 168, 356, 23, 66), without = c(98, 191, 40, 486, 238, 262, 262, 1099, 15, 157), group = c("ABBOTT-ABBOTT CHAGAS ELISA", "ABBOTT-ABBOTT CHAGAS ELISA", "ABBOTT-ABBOTT CHAGAS ELISA", "ABBOTT-ABBOTT CHAGAS ELISA", "BIOSCHILE-TEST ELISA CHAGAS", "ABBOTT-ABBOTT CHAGAS ELISA", "BIOSCHILE-TEST ELISA CHAGAS", "BIOSCHILE-TEST ELISA CHAGAS", "BIOSCHILE-TEST ELISA CHAGAS", "BIOSCHILE-TEST ELISA CHAGAS")), .Names = c("ID2", "VP", "VN", "with", "without", "group"), row.names = c(50L, 42L, 69L, 60L, 37L, 113L, 111L, 124L, 97L, 102L), class = "data.frame") Pedro Brasil 2015-04-13 16:12 GMT-03:00 Rodrigo Coster <rcoster@gmail.com>:
Dica: read.table('clipboard') não funciona com coisas copiadas do R. Use dput() para passar dados e a sua estrutura.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Pedro, bom dia! Eu não tenho domínio desses pacotes, mas dei uma olhada e consegui alguma coisa... Acredito que você possa melhorar a partir dos comandos abaixo. Caso consiga, peço que poste a solução! Pra remover as bordas é só comentar grid.rect(). ### <code r> if (!require("meta")) {install.packages("meta", dep=T); require("meta")} b <- structure(list(ID2 = c("Lorca M-1992", "Carvalho MR-1993", "Hamerschlak N-1997","Oeleman WMR-1998", "Cabalero ZC-2007", "Otani MM-2009", "Otani MM-2009", "Remesar MC-2009", "Anes N-2010", "Flores Chaves M-2010"), VP = c(77, 224, 20, 515, 68, 167, 167, 340, 19, 66), VN = c(98, 182, 36, 481, 225, 257, 261, 1097, 15, 132), with = c(82, 224, 20, 539, 69, 168, 168, 356, 23, 66), without = c(98, 191, 40, 486, 238, 262, 262, 1099, 15, 157), group = c("ABBOTT-ABBOTT CHAGAS ELISA", "ABBOTT-ABBOTT CHAGAS ELISA", "ABBOTT-ABBOTT CHAGAS ELISA", "ABBOTT-ABBOTT CHAGAS ELISA", "BIOSCHILE-TEST ELISA CHAGAS", "ABBOTT-ABBOTT CHAGAS ELISA", "BIOSCHILE-TEST ELISA CHAGAS", "BIOSCHILE-TEST ELISA CHAGAS", "BIOSCHILE-TEST ELISA CHAGAS", "BIOSCHILE-TEST ELISA CHAGAS")), .Names = c("ID2","VP", "VN", "with", "without", "group"), row.names = c(50L, 42L,69L, 60L, 37L, 113L, 111L, 124L, 97L, 102L), class = "data.frame") b$Q47="ELISA" m.e.se <- metaprop(VP, with, studlab=ID2 ,data=b,subset=Q47=="ELISA",incr=.1,allincr=T,addincr=T,comb.fixed=F,hakn=T,title="ELISA for Chagas disease",complab='With Chagas',outclab="True positives",byvar=group,bylab='Trademark-name',print.byvar=T) m.e.sp <- metaprop(VN, without, studlab=ID2 ,data=b,subset=Q47=="ELISA",incr=.1,allincr=T,addincr=T,comb.fixed=F,hakn=T,title="ELISA for Chagas disease",complab='With Chagas',outclab="True negatives",byvar=group,bylab='Trademark-name',print.byvar=T) require(grid) grid.newpage)() grid.show.layout(grid.layout(nrow = 1, ncol = 2, widths=unit(c(27,17), "cm"), heights=unit(18, "cm"))) vp0 <- viewport(layout=grid.layout(nrow = 1, ncol = 2, widths=unit(c(27,17), "cm"), heights=unit(18, "cm"))) pushViewport(vp0) grid.rect() grid.text(paste("texto", collapse="-")) pushViewport(viewport(layout.pos.col=1, layout.pos.row=1), clip="off") grid.rect() forest(new=F, m.e.se,overall=F,text.random="D&L random effects",pooled.events=T,xlab="Sensitivity",rightcols=F,leftcols=c("studlab", "event", "n","effect", "ci"),leftlabs=c("Study","TP","With","Sensitivity","95%-CI")) popViewport(1) pushViewport(viewport(layout.pos.col=2, layout.pos.row=1)) grid.rect() forest(new=F,m.e.sp,overall=F,text.random="D&L random effects",pooled.events=T,xlab="Specificity",rightcols=c("effect", "ci"),leftcols=c("n","event"),leftlabs=c("TN","Without"),rightlabs=c("Specificity","95%-CI")) popViewport(1) ### </code> [image: Imagem inline 2]

Pedro, bom dia! A figura que segue (DoubleForest.png) é gerada pelo código colocado logo abaixo. A exibição on-screen só fica adequada no modo zoom do RStudio. Apesar de não aparecer corretamente na exibição da janela gráfica (windows/x11/quartz), quando direcionada pro dispositivo png() parece funcionar corretamente. ### <code r> if (!require("meta")) {install.packages("meta", dep=T); require("meta")} b <- structure(list(ID2 = c("Lorca M-1992", "Carvalho MR-1993", "Hamerschlak N-1997","Oeleman WMR-1998", "Cabalero ZC-2007", "Otani MM-2009", "Otani MM-2009", "Remesar MC-2009", "Anes N-2010", "Flores Chaves M-2010"), VP = c(77, 224, 20, 515, 68, 167, 167, 340, 19, 66), VN = c(98, 182, 36, 481, 225, 257, 261, 1097, 15, 132), with = c(82, 224, 20, 539, 69, 168, 168, 356, 23, 66), without = c(98, 191, 40, 486, 238, 262, 262, 1099, 15, 157), group = c("ABBOTT-ABBOTT CHAGAS ELISA", "ABBOTT-ABBOTT CHAGAS ELISA", "ABBOTT-ABBOTT CHAGAS ELISA", "ABBOTT-ABBOTT CHAGAS ELISA", "BIOSCHILE-TEST ELISA CHAGAS", "ABBOTT-ABBOTT CHAGAS ELISA", "BIOSCHILE-TEST ELISA CHAGAS", "BIOSCHILE-TEST ELISA CHAGAS", "BIOSCHILE-TEST ELISA CHAGAS", "BIOSCHILE-TEST ELISA CHAGAS")), .Names = c("ID2","VP", "VN", "with", "without", "group"), row.names = c(50L, 42L,69L, 60L, 37L, 113L, 111L, 124L, 97L, 102L), class = "data.frame") b$Q47="ELISA" m.e.se <- metaprop(VP, with, studlab=ID2, data=b, subset=Q47=="ELISA", incr=.1, allincr=T, addincr=T, comb.fixed=F,hakn=T,title="ELISA for Chagas disease", complab='With Chagas', outclab="True positives", byvar=group, bylab='Trademark-name', print.byvar=T) m.e.sp <- metaprop(VN, without, studlab=ID2, data=b, subset=Q47=="ELISA", incr=.1, allincr=T, addincr=T, comb.fixed=F,hakn=T,title="ELISA for Chagas disease", complab='With Chagas', outclab="True negatives", byvar=group, bylab='Trademark-name', print.byvar=T) # parRS <- par(no.readonly=T) require(grid) png(filename="DoubleForest.png", width=1200, height=460, units = "px", bg = "white") grid.newpage() grid.show.layout(l <- grid.layout(nrow=1, ncol=2, w=c(.6,.35), h=.9, default="npc"), vp.ex=.8) # grid.show.layout(l <- grid.layout(nrow=1, ncol=2, w=c(1.6,1), h=1, default="npc", respect=T), vp.ex=.8) vp0 <- viewport(layout=l) pushViewport(vp0) grid.rect(gp=gpar(fill="white")) pushViewport(viewport(layout.pos.col=1, layout.pos.row=1)) forest(new=F, m.e.se,overall=F,text.random="D&L random effects", pooled.events=T,xlab="Sensitivity", rightcols=F, leftcols=c("studlab", "event", "n","effect", "ci"), leftlabs=c("Study","TP","With","Sensitivity","95%-CI"), height=200) popViewport(1) pushViewport(viewport(layout.pos.col=2, layout.pos.row=1)) forest(new=F,m.e.sp,overall=F,text.random="D&L random effects", pooled.events=T,xlab="Specificity", rightcols=c("effect", "ci"), leftcols=c("n","event"), leftlabs=c("TN","Without"), rightlabs=c("Specificity","95%-CI")) popViewport(1) dev.off() file.info("DoubleForest.png") ### </code>

Ei Éder, Hoje finalmente eu pude olhar e testar o exemplo que voce mandou e funcionou bem. Alguma pequenas modificações pra funcionar com os meus dados verdadeiros, Principalmente retirar a fixação do tamanho da janela e colocar essas timensões dentro da função tiff que salva o grafico. Eu percebi que a grande diferença entre o seu exemplo e as minhas tentativas frustradas eram o new=F dentro da forest que eu não estava usando, ao contrario eu estava tentando forçar o new = T, o que fez toda a diferença. Valeu mesmo. Abraço, Pedro Brasil 2015-04-16 9:10 GMT-03:00 Éder Comunello <comunello.eder@gmail.com>:
Pedro, bom dia!
A figura que segue (DoubleForest.png) é gerada pelo código colocado logo abaixo. A exibição on-screen só fica adequada no modo zoom do RStudio. Apesar de não aparecer corretamente na exibição da janela gráfica (windows/x11/quartz), quando direcionada pro dispositivo png() parece funcionar corretamente.
### <code r> if (!require("meta")) {install.packages("meta", dep=T); require("meta")}
b <- structure(list(ID2 = c("Lorca M-1992", "Carvalho MR-1993", "Hamerschlak N-1997","Oeleman WMR-1998", "Cabalero ZC-2007", "Otani MM-2009", "Otani MM-2009", "Remesar MC-2009", "Anes N-2010", "Flores Chaves M-2010"), VP = c(77, 224, 20, 515, 68, 167, 167, 340, 19, 66), VN = c(98, 182, 36, 481, 225, 257, 261, 1097, 15, 132), with = c(82, 224, 20, 539, 69, 168, 168, 356, 23, 66), without = c(98, 191, 40, 486, 238, 262, 262, 1099, 15, 157), group = c("ABBOTT-ABBOTT CHAGAS ELISA", "ABBOTT-ABBOTT CHAGAS ELISA", "ABBOTT-ABBOTT CHAGAS ELISA", "ABBOTT-ABBOTT CHAGAS ELISA", "BIOSCHILE-TEST ELISA CHAGAS", "ABBOTT-ABBOTT CHAGAS ELISA", "BIOSCHILE-TEST ELISA CHAGAS", "BIOSCHILE-TEST ELISA CHAGAS", "BIOSCHILE-TEST ELISA CHAGAS", "BIOSCHILE-TEST ELISA CHAGAS")), .Names = c("ID2","VP", "VN", "with", "without", "group"), row.names = c(50L, 42L,69L, 60L, 37L, 113L, 111L, 124L, 97L, 102L), class = "data.frame")
b$Q47="ELISA"
m.e.se <- metaprop(VP, with, studlab=ID2, data=b, subset=Q47=="ELISA", incr=.1, allincr=T, addincr=T, comb.fixed=F,hakn=T,title="ELISA for Chagas disease", complab='With Chagas', outclab="True positives", byvar=group, bylab='Trademark-name', print.byvar=T)
m.e.sp <- metaprop(VN, without, studlab=ID2, data=b, subset=Q47=="ELISA", incr=.1, allincr=T, addincr=T, comb.fixed=F,hakn=T,title="ELISA for Chagas disease", complab='With Chagas', outclab="True negatives", byvar=group, bylab='Trademark-name', print.byvar=T)
# parRS <- par(no.readonly=T)
require(grid) png(filename="DoubleForest.png", width=1200, height=460, units = "px", bg = "white") grid.newpage() grid.show.layout(l <- grid.layout(nrow=1, ncol=2, w=c(.6,.35), h=.9, default="npc"), vp.ex=.8)
# grid.show.layout(l <- grid.layout(nrow=1, ncol=2, w=c(1.6,1), h=1, default="npc", respect=T), vp.ex=.8)
vp0 <- viewport(layout=l)
pushViewport(vp0) grid.rect(gp=gpar(fill="white"))
pushViewport(viewport(layout.pos.col=1, layout.pos.row=1)) forest(new=F, m.e.se,overall=F,text.random="D&L random effects", pooled.events=T,xlab="Sensitivity", rightcols=F, leftcols=c("studlab", "event", "n","effect", "ci"), leftlabs=c("Study","TP","With","Sensitivity","95%-CI"), height=200) popViewport(1)
pushViewport(viewport(layout.pos.col=2, layout.pos.row=1)) forest(new=F,m.e.sp,overall=F,text.random="D&L random effects", pooled.events=T,xlab="Specificity", rightcols=c("effect", "ci"), leftcols=c("n","event"), leftlabs=c("TN","Without"), rightlabs=c("Specificity","95%-CI")) popViewport(1) dev.off()
file.info("DoubleForest.png")
### </code>
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Ok, Pedro! Bom que lhe foi útil! Se possível, deixe sua solução para consulta na lista. Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]
participantes (3)
-
Pedro Emmanuel Alvarenga Americano do Brasil
-
Rodrigo Coster
-
Éder Comunello