In addition to Benjamin's response (which is the best way that I know of), you may also want to look at the grconvertX and grconvertY functions for ways to find the coordinates in the margins to plot at.
-- Gregory (Greg) L. Snow Ph.D. Statistical Data Center Intermountain Healthcare greg.s...@imail.org 801.408.8111 > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r- > project.org] On Behalf Of Nutter, Benjamin > Sent: Wednesday, July 29, 2009 8:56 AM > To: Alan Cohen > Cc: r-help@r-project.org > Subject: Re: [R] Drawing lines in margins > > Look at the xpd option in ?par. If you set par(xpd=TRUE) you should be > able to add a segment for what you want. But please let me know if > someone gives you a better way to do this. > > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r- > project.org] > On Behalf Of Alan Cohen > Sent: Wednesday, July 29, 2009 10:22 AM > To: r-help@r-project.org > Subject: [R] Drawing lines in margins > > Hi all, > > Quick question: What function can I use to draw a line in the margin of > a plot? segments() and lines() both stop at the margin. > > In case the answer depends on exactly what I'm trying to do, see below. > I'm using R v. 2.8.1 on Windows XP. > > Cheers, > Alan > > I'm trying to make a horizontal barplot with a column of numbers on the > right side. I'd like to put a line between the column header and the > numbers. The following reconstructs the idea - just copy and paste it > in: > aa <- 1:10 > plot.mtx2<-cbind(aa,aa+1) > colnames(plot.mtx2)<-c("Male","Female") > lci2<- cbind(aa-1,aa) > uci2<- cbind(aa+1,aa+2) > par(mar=c(5,6,4,5)) > cols <- c("grey79","grey41") > bplot2<-barplot(t(plot.mtx2),beside=TRUE,xlab="Malaria death rates per > 100,000", > names.arg=paste("state",aa,sep=""),legend.text=F,las=1,xlim=c(0,13), > horiz=T, col=cols, > main="Malaria death rates by state and sex") > legend(8,6,legend=c("Female","Male"),fill=cols[order(2:1)]) > segments(y0=bplot2, y1=bplot2, x0=t(lci2), x1=t(uci2)) > mtext(10*(aa+1),side=4,line=4,at=seq(3,3*length(aa),by=3)- > 0.35,padj=0.5, > adj=1,las=1,cex=0.85) > mtext(10*aa,side=4,line=4,at=seq(2,3*length(aa)-1,by=3)- > 0.65,padj=0.5,ad > j=1,las=1,cex=0.85) > mtext("Estimated",side=4,line=3,at=3*length(aa)+2.75,padj=0.5,adj=0.5,l > a > s=1,cex=0.85) > mtext("Deaths",side=4,line=3,at=3*length(aa)+1.25,padj=0.5,adj=0.5,las= > 1 > ,cex=0.85) > > ______________________________________________ > 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. > > > =================================== > > P Please consider the environment before printing this e-mail > > Cleveland Clinic is ranked one of the top hospitals > in America by U.S. News & World Report (2008). > Visit us online at http://www.clevelandclinic.org for > a complete listing of our services, staff and > locations. > > > Confidentiality Note: This message is intended for > use\...{{dropped:13}} > > ______________________________________________ > 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. ______________________________________________ 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.