[R] Formatting names.arg

David Winsemius dwinsemius at comcast.net
Mon May 23 23:31:47 CEST 2011


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"

-- 
David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list