[R] Barplot2 using for loop, how to adjust margins?
Lauri Nikkinen
lauri.nikkinen at iki.fi
Thu Aug 30 19:13:52 CEST 2007
Hi R-users,
I inted to make multiple plots using for loop. The question is how can
I adjust the left hand side margin of the plot according to the
names.arg argument in barplot2. In every plot I have different
annotations in the y axis and they vary in length. Now when I have
fixed margins
opar <- par(mar=c(3,15,0,2)...
I get the same margins in all of the plots. That leaves lots of white
space in plots where the annotations are short.
Here is the code I'm using:
library(gplots)
opar <- par(mar=c(3,15,0,2), bg="white", cex=1, oma = c(0, 0, 2, 0),
mgp=c(3,0.5,0))
for (i in names(spl)) {
.order <- order(spl[[i]]$x)
barplot2(spl[[i]]$x[.order],
names.arg=as.character(spl[[i]]$os[.order]),
horiz=TRUE,
las=1,
cex.names=0.7,
cex.main=0.9,
cex.axis=0.7,
xlim=c(0, max(spl[[i]]$x)+10),
col=as.character(spl[[i]][1,7]),
plot.grid = TRUE,
)
box()
mtext(paste(paste(as.character(spl[[i]][1,2]), ":", sep=""),
"texthere", "(texthere)", as.character(spl[[i]][1,3])), outer=T, line
= 0.5, cex=1.1)
mtext("texthere", side=1, line=1.5, adj=0.5)
dev.copy(png, filename=paste(i, ".png", sep=""), height=400,
width=480)
dev.off()
}
Thanks in advance
Lauri
More information about the R-help
mailing list