[R] Formatting names.arg

Marc Schwartz marc_schwartz at me.com
Mon May 23 23:48:46 CEST 2011


On May 23, 2011, at 4:31 PM, David Winsemius wrote:

> 
> On May 23, 2011, at 4:32 PM, Marc Schwartz wrote:
> 
>> On May 23, 2011, at 3:13 PM, Adrienne Keller wrote:
>> 
>>> I am making a barplot using barplot2 from gplots and would like to
>>> format the names of my categorical variables (tree species) on the x-
>>> axis so that the genus name is above the species name (to save room).
>>> My code so far is:
>>> 
>>> speciesnames<-c("Dialium guianensis", "Inga alba", "Tachigali
>>> versicolor", "Brosimum utile", "Caryocar costaricense", "Castilla
>>> tunu", "Otoba novagranatensis", "Pourouma bicolor", "Socratea
>>> exorrhiza")
>>> barplot2(meanapAprilactivity, names.arg=speciesnames, col=columncolor,
>>> xlab="Species", ylab="Soil acid phosphatase activity (nmol/h/g)",
>>> plot.ci=T, ci.l=apAprilminusordered, ci.u=apAprilplusordered,
>>> cex.lab=1.5)
>>> 
>>> For example, I want 'Dialium' to be located above 'guianensis' on the
>>> x-axis. Is there a way to do this?
>>> 
>>> Thanks,
>>> 
>>> Adrienne Keller
>> 
>> 
>> Hi,
>> 
>> Just replace the space between the names with a newline character ('\n'):
>> 
>> barplot(1:9, names.arg = gsub(" ", "\\\n", speciesnames),
>>         cex.names = 0.5)
>> 
>> That will put the labels on two lines.
>> 
>> See ?gsub and note that I used 3 '\' preceding the 'n'.
> 
> Except that tripling of "\" is not necessary with the second argument to gsub or sub, only with the first pattern argument.
> 
> speciesnames<-c("Dialium guianensis", "Inga alba", "Tachigali versicolor", "Brosimum utile", "Caryocar costaricense", "Castilla tunu", "Otoba novagranatensis", "Pourouma bicolor", "Socratea exorrhiza")
> 
> sub(" ", "\n", speciesnames)
> 
> [1] "Dialium\nguianensis"    "Inga\nalba"
> [3] "Tachigali\nversicolor"  "Brosimum\nutile"
> [5] "Caryocar\ncostaricense" "Castilla\ntunu"
> [7] "Otoba\nnovagranatensis" "Pourouma\nbicolor"
> [9] "Socratea\nexorrhiza"
> 


Thanks for catching that David, you are correct. That's what I get for answering the post in the middle of formatting R output for LaTeX and having tunnel vision on the backslashes...

:-)

Regards,

Marc



More information about the R-help mailing list