Dear R-users,

I am trying to add some text in a textbox to all panels in the following
example file. Using the panel-function, I can add a white rectangle with
panel.rect but then I have to fit in the text into the box by hand and it
will not automatically be centered. Does anyone know how to add the text
centered with a white box around it automatically? Is there something like
panel.textbox for lattice?

Thanks in advance and here is the example
Erich


install.packages("Giza")
library(Giza)

panel.tpop <- function(x,y,...){
                      panel.grid(h=length(agegrs),v=5,col="lightgrey",lty=1)
                      ls1 <<- list(...)
                      y <<- y
                      iFrame <- iEduDat[ls1$subscripts,]
                        iSex <- with(iFrame,unique(sex))
                        if (iSex=="Female"){
                            panel.pyramid(x,y,...)
                            iCc <- with(iFrame,unique(cc))
                            iYr <- with(iFrame,unique(yr))
                            totpop <- round(sum(abs(subset(iEduDat,cc==iCc
& yr==iYr,select=value)))/1000,2)
                            LAB <- paste("Pop = ",totpop," Mio",sep="")
                            xr <-
max(abs(subset(iEduDat,cc==iCc,select=value)))
                            xr <- xr - xr * 0.005

panel.text(x=xr,y=max(y)-2,lab=LAB,cex=0.7,pos=2)
                          } else {panel.pyramid(x,y,...)}
                     }

data(EduDat)
data(dictionary)

# select the desired year, country, and education-scenario from EduDat
Years <- c(2010,2030,2050)
Countries <- c("Pakistan","Bangladesh","Indonesia")
Scenarios <- c("GET")
# the male-column needs to be flipped
iEduDat <- subset(EduDat,match(cc,getcode(Countries,dictionary)) &
match(yr,Years) & match(scen2,Scenarios))
iEduDat$value[iEduDat$sex == "Male"] <- (-1) * iEduDat$value[iEduDat$sex ==
"Male"]

agegrs <- paste(seq(15,100,5),seq(19,104,5),sep="-")
agegrs[length(agegrs)] <- "100+"

lattice.options(axis.padding = list(numeric=0))
x <- pyramidlattice(agegr ~ value| factor(sex,levels=c("Male","Female")) *

 factor(cc,levels=getcode(Countries,dictionary),labels=Countries) *
                                   factor(yr,levels=Years,labels=Years),

 groups=variable,data=iEduDat,layout=c(length(Countries)*2,length(Years)),
           type="l",lwd=1,xlab="Population",ylab="Age",main="Population by
Highest Level of Education",
           strip=TRUE,par.settings =
simpleTheme(lwd=3,col=colors()[c(35,76,613,28)]),box.width=1,

 
scales=list(alternating=3,tick.number=5,relation="same",y=list(at=1:length(4:21),labels=agegrs)),

 
auto.key=list(text=c("No-edu","Primary","Secondary","Tertiary"),reverse.row=TRUE,

 points=FALSE,rectangles=TRUE,space="right",columns=1,border=FALSE,

 
title="ED-Level",cex.title=1.1,lines.title=2.5,padding.text=1,background="white"),
           prepanel=prepanel.default.bwplot2,panel=panel.tpop)
useOuterStrips2(x)

        [[alternative HTML version deleted]]

______________________________________________
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