[R] pyramid.plot in plotrix, axis labelling
Hi, I've been looking at ways to make pyramid plots in R. I like the pyramid.plot method in plotrix as it seems the simplest to use and building them in ggplot looks a bit more code intensive than I'd like, being as I'm new to R. This package does pretty much what I need it to do, however I can't seem to scale the x axis labels. The other labels scale fine with labelcex. I guess the preferred method is to remove them and re-build them as you might in the base package, but I have no idea how to refer to them as there are two of them. I have enclosed some sample data lifted from another example. I've scaled down the other labels using labelcex whch leaves the disparity in sizes that I'm trying to remove. I'd like something like this but with the x axis lables the same size as the y. mpop=c(50,75,80,100,110,90,85,60,40,20) fpop=c(50,75,80,100,110,90,85,60,50,30) coh=c(0-9,10-19,20-29,30-39,40-49,50-59,60-69,70-79,80-89,90-99) pyramid.plot(mpop,fpop,labels=coh,gap=15,labelcex=0.7,top.labels=c(males,age group,females),lxcol=red,rxcol=blue, laxlab=c(0,50,100,150),raxlab=c(0,50,100,150)) Any suggestions gratefully recieved. Gavin. __ 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.
Re: [R] pyramid.plot in plotrix, axis labelling
Gavin, Thank you for this example. I would use the as.pyramidLikert function in the HH package. The resulting plot is a standard lattice plot, so any fine tuning uses that standard lattice features. Rich ## install.packages(HH) ## if necessary library(HH) mydata - cbind(mpop,fpop)[10:1,] dimnames(mydata) - list(coh, c(males,females)) mydata males females 0-9 20 30 10-1940 50 20-2960 60 30-3985 85 40-4990 90 50-59 110 110 60-69 100 100 70-7980 80 80-8975 75 90-9950 50 as.pyramidLikert(plot.likert(mydata)) print(as.pyramidLikert(plot.likert(mydata)), panel.width=.45) update(as.pyramidLikert(plot.likert(mydata)), scales=list(cex=2)) print(update(as.pyramidLikert(plot.likert(mydata)), scales=list(cex=2)), panel.width=.42) packageVersion(HH) [1] 2.2.23 -- Forwarded message -- From: Gavin Rudge g.ru...@bham.ac.uk Date: Thu, Apr 12, 2012 at 7:55 AM Subject: [R] pyramid.plot in plotrix, axis labelling To: r-help@r-project.org r-help@r-project.org Hi, I've been looking at ways to make pyramid plots in R. I like the pyramid.plot method in plotrix as it seems the simplest to use and building them in ggplot looks a bit more code intensive than I'd like, being as I'm new to R. This package does pretty much what I need it to do, however I can't seem to scale the x axis labels. The other labels scale fine with labelcex. I guess the preferred method is to remove them and re-build them as you might in the base package, but I have no idea how to refer to them as there are two of them. I have enclosed some sample data lifted from another example. I've scaled down the other labels using labelcex whch leaves the disparity in sizes that I'm trying to remove. I'd like something like this but with the x axis lables the same size as the y. mpop=c(50,75,80,100,110,90,85,60,40,20) fpop=c(50,75,80,100,110,90,85,60,50,30) coh=c(0-9,10-19,20-29,30-39,40-49,50-59,60-69,70-79,80-89,90-99) pyramid.plot(mpop,fpop,labels=coh,gap=15,labelcex=0.7,top.labels=c(males,age group,females),lxcol=red,rxcol=blue, laxlab=c(0,50,100,150),raxlab=c(0,50,100,150)) Any suggestions gratefully recieved. Gavin. __ 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. [[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.
Re: [R] pyramid.plot in plotrix, axis labelling
On 04/12/2012 09:55 PM, Gavin Rudge wrote: Hi, I've been looking at ways to make pyramid plots in R. I like the pyramid.plot method in plotrix as it seems the simplest to use and building them in ggplot looks a bit more code intensive than I'd like, being as I'm new to R. This package does pretty much what I need it to do, however I can't seem to scale the x axis labels. The other labels scale fine with labelcex. I guess the preferred method is to remove them and re-build them as you might in the base package, but I have no idea how to refer to them as there are two of them. I have enclosed some sample data lifted from another example. I've scaled down the other labels using labelcex whch leaves the disparity in sizes that I'm trying to remove. I'd like something like this but with the x axis lables the same size as the y. mpop=c(50,75,80,100,110,90,85,60,40,20) fpop=c(50,75,80,100,110,90,85,60,50,30) coh=c(0-9,10-19,20-29,30-39,40-49,50-59,60-69,70-79,80-89,90-99) pyramid.plot(mpop,fpop,labels=coh,gap=15,labelcex=0.7,top.labels=c(males,age group,females),lxcol=red,rxcol=blue, laxlab=c(0,50,100,150),raxlab=c(0,50,100,150)) Hi Gavin, Just change line 23 in the function from: par(mar=ppmar) to: par(mar=ppmar,cex.axis=labelcex) This will be in the next version of plotrix. Thanks for the heads-up. Jim __ 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.