[R] par code help

David Winsemius dwinsemius at comcast.net
Wed Jun 22 00:43:00 CEST 2011


On Jun 21, 2011, at 4:29 PM, Adrienne Keller wrote:

> I am making a barplot using barplot2 from gplots where each bar  
> represents a specific tree species. I have formatted the species  
> names on the x-axis so that the genus name is above the species name  
> and have then rotated the labels 45 degrees to save room. This is my  
> code:
>
> >columncolor<-c("grey20", "grey20", "grey20", "grey70", "grey70",  
> "grey70", "grey70", "grey70", "grey70")
> >speciesnames<-c("Dialium\nguianensis", "Inga\nalba", "Tachigali 
> \nversicolor", "Brosimum\nutile", "Caryocar\ncostaricense", "Castilla 
> \ntunu", "Otoba\nnovagranatensis", "Pourouma\nbicolor", "Socratea 
> \nexorrhiza")
> >barplot2(meanapAprilactivity, names.arg=speciesnames,  
> col=columncolor, xlab="Species", ylab="Soil acid phosphatase  
> activity (nmol/h/g)", ylim=c(0,1000), plot.ci=T,  
> ci.l=apAprilminusordered, ci.u=apAprilplusordered,  
> cex.lab=1.5)#FinalGraphs>aPApril_Genus.pdf

...  "object 'meanapAprilactivity' not found"

> >xvals<-barplot2(meanapAprilactivity, col=columncolor,  
> xlab="Species", ylab="Soil acid phosphatase activity (nmol/h/g)",  
> ylim=c(0,1000), plot.ci=T, ci.l=apAprilminusordered,  
> ci.u=apAprilplusordered, cex.lab=1.5)#FinalGraphs>aPApril_Genus.pdf
> >text(xvals,par("usr")[3]-1, srt=45, adj=0.5,labels=speciesnames,  
> xpd=T)
>
> I have a few problems/questions:
>
> 1) The middle of the species names are placed at the bottom of the  
> bar, such that half of the label is in the figure.

Without any data that's a bit hard to reproduce. Use  
dput(meanapAprilactivity )

And _what_ were your goals, anyway?

>
> 2) There is too much of a space between the genus and species name  
> (e.g. between Dialium and guianensis for my first species)

Ditto.
>
> 3) Do I use cex.axis to change the font size of the labels and  
> cex.lab to change the font size of xlab and ylab?

If you are referring to the text() call then cex will change the font  
size of the labels.

>
> I don't understand par() well enough to know what to change. I  
> figured changing the numbers after "usr" might help but I don't  
> understand what these numbers refer to and guess and check hasn't  
> gotten me anywhere.

The third value of par("usr") is the min y value (in the natural   
units of the y variable) for the plot area, so if you were trying to  
place the text near the bottom of the plotted region, then subtracting  
1 from it to get your y-text argument _might_ work, but if the range  
of y values is large you may overlap the lower border. Please describe  
your goals, rather than relying on code that doesn't give the desired  
result.

  mp <- barplot2(VADeaths) # default
  dimnames(VADeaths)[[2]]
# [1] "Rural Male"   "Rural Female" "Urban Male"   "Urban Female"
  speciesnames <-c("Rural\nMale" ,  "Rural\nFemale","Urban\nMale"  ,  
"Urban\nFemale")
  # increasing the value subtracted from y1 lowers the position of the  
labels
  xvals<-barplot2(VADeaths);  text(xvals,par("usr")[3]-8, srt=45,  
adj=0.5,labels=speciesnames, xpd=T)


>
> Thanks,
>
>
> Adrienne Keller
> Graduate Student, College of Forestry
> University of Montana
> adrienne.keller at umontana.edu
> (Phone) 651-485-5822
>
> ______________________________________________
> R-help at 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list