URGENT help-Problem with panel barplot spacing
Thanks for the code, Rich. I now get the concept of using the lattice library. Most grateful for the references shared. Regards Kwesi
On 28 May 2019 at 19:56:06, Richard M. Heiberger (rmh at temple.edu) wrote:
I think this is what you want. You didn't send a reproducible example (no values for djf.gcms or for cores1). For what I think you are doing, lattice would be much simpler. It handles the repetition within each panel for you. ## generate some data djf.gcms <- matrix(sample(50, size=9*12, replace=TRUE), 9, 12) library(lattice) library(latticeExtra) djfs <- cbind(stack(data.frame(djf.gcms)), letter=factor(letters[1:9])) head(djfs) tmp <- barchart(letter ~ values | ind, group=letter, col=1:9, data=djfs, horizontal=TRUE, stack=TRUE, type="i", scales=list(x=list(alternating=FALSE, axs="i", limits=c(0,59))), origin=0, layout=c(4, 3), between=list(x=1, y=2)) + layer(panel.text(x=x+5, y, label=x)) + layer(panel.abline(v=seq(0,50,10), col="gray"), under=TRUE) tmp Rich The best place to start learning lattice is the trellis book http://geog.uoregon.edu/GeogR/pdfs/trellis.user.pdf The definitive reference is Deepayan Sarkar's book, Lattice: Multivariate Data Visualization with R https://www.e-reading.club/bookreader.php/137342/Lattice._Multivariate_Data_Visualization_with_R.pdf My book (HH2) is Heiberger, Richard M. and Holland, Burt (2015). Statistical Analysis and Data Display: An Intermediate Course with Examples in R. Springer, second edition. ISBN 978-1-4939- 2121-8. https://www.springer.com/us/book/9781493921218 See HH2 Chapter 4 Graphs for a general discussion and many examples throughout the book and in the accompanying CRAN package HH. install.packages("HH") On Tue, May 28, 2019 at 6:42 AM Kwesi A. Quagraine
<starskykwesi at gmail.com> wrote:
Hello All, I am struggling to control the spaces between barplots I have panelled. I would be grateful for any help in reducing the spaces between the plots. For instance, how I can reduce distance between 1 and 2, 2 and 3 etc. I would appreciate any help on this. Thanks Here?s a snippet of my code and attached is the current image I generate from the command; ##for djf
postscript("fig_paper2_fre_obs_models_djf_1980_2013_4x3_new.eps",width=10,height=8,paper="special",horizontal=T,onefile=T)
par(mfrow=c(3,4))
par(mar=c(6,11,1,2))
a =1
for (j in a) {
djf.bar<- barplot(djf.gcms[,j],ylim=c(0,9),xlim=c(0,50),col=cores1,main =
j,type="n",font.main = 1, cex.main = 1.5,las=1, axisnames = T, width =
0.8,cex.names=1.5,horiz = TRUE)
abline(v=c(seq(0,50,10)),col='grey',lwd=0.2)
par(new=TRUE)
djf.bar<-barplot(djf.gcms[,j],ylim=c(0,9),xlim=c(0,50),col=cores1,main =
j,font.main = 1, cex.main = 1.5,las=1, axisnames = T, width =
0.8,cex.names=1.5,horiz = TRUE)
## Add text at top of bars
text(y = djf.bar, x = djf.gcms[,j], label = round(djf.gcms[,j],
digits=0), pos = 4, cex = 1.2)
}
for (i in 2:4) {
djf.bar<-barplot(djf.gcms[,i],ylim=c(0,9),xlim=c(0,50),col=cores1,main =
i, yaxs="i",type="n",font.main = 1, cex.main = 1.1,las=1, axisnames =
FALSE, width = 0.8,cex.names=1.0,horiz = TRUE)
abline(v=c(seq(0,50,10)),col='grey',lwd=0.2)
par(new=TRUE)
djf.bar<-barplot(djf.gcms[,i],ylim=c(0,9),xlim=c(0,50),col=cores1,main =
i, yaxs="i",font.main = 1, cex.main = 1.1,las=1, axisnames = FALSE, width
=
0.8,cex.names=1.0,horiz = TRUE)
text(y = djf.bar, x = djf.gcms[,i], label = round(djf.gcms[,i],
digits=0), pos = 4, cex = 1.0)
}
b=5
for (k in b) {
djf.bar<-barplot(djf.gcms[,k],ylim=c(0,9),xlim=c(0,50),col=cores1,main =
k,type="n",font.main = 1, cex.main = 1.1,las=1, axisnames = T, width =
0.8,cex.names=1.5,horiz = TRUE)
abline(v=c(seq(0,50,10)),col='grey',lwd=0.2)
par(new=TRUE)
djf.bar<-barplot(djf.gcms[,k],ylim=c(0,9),xlim=c(0,50),col=cores1,main =
k,font.main = 1, cex.main = 1.1,las=1, axisnames = T, width =
0.8,cex.names=1.5,horiz = TRUE)
text(y = djf.bar, x = djf.gcms[,k], label = round(djf.gcms[,k],
digits=0), pos = 4, cex = 1.2)
}
for (n in 6:8) {
barplot(djf.gcms[,n],ylim=c(0,9),xlim=c(0,50),col=cores1,main =
n,type="n",font.main = 1, cex.main = 1.1,las=1, axisnames = FALSE, width
=
0.8,cex.names=1.0,horiz = TRUE)
abline(v=c(seq(0,50,10)),col='grey',lwd=0.2)
par(new=TRUE)
barplot(djf.gcms[,n],ylim=c(0,9),xlim=c(0,50),col=cores1,main =
n,font.main = 1, cex.main = 1.1,las=1, axisnames = FALSE, width =
0.8,cex.names=1.0,horiz = TRUE)
text(y = djf.bar, x = djf.gcms[,n], label = round(djf.gcms[,n],
digits=0), pos = 4, cex = 1.0)
}
c = 9
for (m in c) {
djf.bar<-barplot(djf.gcms[,m],ylim=c(0,9),xlim=c(0,50),col=cores1,main =
m,type="n",font.main = 1, cex.main = 1.1,las=1, axisnames = T, width =
0.8,cex.names=1.5,horiz = TRUE)
abline(v=c(seq(0,50,10)),col='grey',lwd=0.2)
par(new=TRUE)
djf.bar<-barplot(djf.gcms[,m],ylim=c(0,9),xlim=c(0,50),col=cores1,main =
m,font.main = 1, cex.main = 1.1,las=1, axisnames = T, width =
0.8,cex.names=1.5,horiz = TRUE)
title("Frequency (%)", line = -17.0)
text(y = djf.bar, x = djf.gcms[,m], label = round(djf.gcms[,m],
digits=0), pos = 4, cex = 1.2)
}
for (i in 10:12) {
djf.bar<-barplot(djf.gcms[,i],ylim=c(0,9),xlim=c(0,50),col=cores1,main =
i,type="n",font.main = 1, cex.main = 1.1,las=1, axisnames = F, width =
0.8,cex.names=1.0,horiz = TRUE)
abline(v=c(seq(0,50,10)),col='grey',lwd=0.2)
par(new=TRUE)
djf.bar<-barplot(djf.gcms[,i],ylim=c(0,9),xlim=c(0,50),col=cores1,main =
i,font.main = 1, cex.main = 1.1,las=1, axisnames = F, width =
0.8,cex.names=1.0,horiz = TRUE) #xlab="Frequency (%)"
title("Frequency (%)", line = -17.0)
text(y = djf.bar, x = djf.gcms[,i], label = round(djf.gcms[,i],
digits=0), pos = 4, cex = 1.0)
}
dev.off()
------------
Try not to become a man of success but rather a man of value- Albert
Einstein
Kwesi A. Quagraine
Department of Physics
School of Physical Sciences
College of Agriculture and Natural Sciences
University of Cape Coast
Cape Coast, Ghana
Alt. Email: kwesi at csag.uct.ac.za
Web: http://www.recycleupghana.org/
Office: +27 21 650 3164
Skype: quagraine_cwasi
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.
------------ Try not to become a man of success but rather a man of value- Albert Einstein Kwesi A. Quagraine Department of Physics School of Physical Sciences College of Agriculture and Natural Sciences University of Cape Coast Cape Coast, Ghana Alt. Email: kwesi at csag.uct.ac.za Web: http://www.recycleupghana.org/ Office: +27 21 650 3164 Skype: quagraine_cwasi