Hi

The problem is that BOTH mosaic() and labeling_cells() are calling seekViewport() to find the right viewport to draw into and for BOTH plots they are finding the same viewports (on the left side of the page). The following code solves the problem (for me anyway) by specifying a different 'prefix' for each mosaic() and labeling_cells() call ...


grid.newpage()
pushViewport(viewport(layout=grid.layout(1,2)))
pushViewport(viewport(layout.pos.col=1))
mosaic(.test, gp=shading_hsv, pop=FALSE, split_verticaL=FALSE,
       newpage=FALSE,
       labeling_args=list(offset_varnames=c(top=3),
                          offset_labels=c(top=2)),
       prefix="plot1")
labeling_cells(text=round(prop.table(.test, 1), 2)*100,
               clip=FALSE)(.test, prefix="plot1")
upViewport()

pushViewport(viewport(layout.pos.col=2))
mosaic(.test1, gp=shading_hsv, newpage=FALSE, pop=FALSE,
       split_vertical=FALSE,
       labeling_args=list(offset_varnames=c(top=3),
                          offset_labels=c(top=2)),
       prefix="plot2")
labeling_cells(text=round(prop.table(.test1, 1), 2)*100,
               clip=FALSE)(.test1, prefix="plot2")
popViewport(2)


... hope that helps.

Paul

On 1/11/2011 5:21 a.m., Simon Kiss wrote:
Dear colleagues I'm using data that looks like .test and .test1 below
to draw two mosaic plots with cell labelling (the row percentages
from the tables). When I take out the pop=FALSE commands in the
mosaic commands and comment out the two lines labelling the cells,
then the plots are laid out exactly as I'd like: side-by-side. But I
do require the cell labelling and the pop=FALSE arguments. I suspect
I need to add in a call to pushViewport or an upViewport command, but
I'm not sure. Any advice is welcome.


library(vcd) library(grid)


.test<-as.table(matrix(c(1, 2, 3, 4, 5, 6), nrow=3, ncol=2,
byrow=TRUE)) .test<-prop.table(.test, 1) .test1<-as.table(matrix(c(1,
2, 3, 4), nrow=2, ncol=2, byrow=TRUE)) .test1<-prop.table(.test1, 1)

dimnames(.test)<-list("Fluoride Cluster"=c('Beneficial\nand Safe',
'Mixed Opinion', 'Harmful With No Benefits'), "Governments Should Not
Impose Treatment"=c('Agree', 'Disagree'))
dimnames(.test1)<-list("Vaccines Are Too Much To Handle"= c('Agree' ,
'Disagree'), "Governments Should Not Oblige Treatment" =c('Agree',
'Disagree')) grid.newpage()
pushViewport(viewport(layout=grid.layout(1,2)))
pushViewport(viewport(layout.pos.col=1)) mosaic(.test,
gp=shading_hsv, pop=FALSE, split_verticaL=FALSE, newpage=FALSE,
labeling_args=list(offset_varnames=c(top=3),
offset_labels=c(top=2))) labeling_cells(text=round(prop.table(.test,
1), 2)*100, clip=FALSE)(.test) popViewport()

pushViewport(viewport(layout.pos.col=2)) mosaic(.test1,
gp=shading_hsv, newpage=FALSE,pop=FALSE, split_vertical=FALSE,
labeling_args=list(offset_varnames=c(top=3),
offset_labels=c(top=2))) labeling_cells(text=round(prop.table(.test1,
1), 2)*100, clip=FALSE)(.test1) popViewport(2)
********************************* Simon J. Kiss, PhD Assistant
Professor, Wilfrid Laurier University 73 George Street Brantford,
Ontario, Canada N3T 2C9 Cell: +1 905 746 7606

______________________________________________ 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.

--
Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
Auckland
New Zealand
64 9 3737599 x85392
p...@stat.auckland.ac.nz
http://www.stat.auckland.ac.nz/~paul/

______________________________________________
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.

Reply via email to