An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20110523/45c30583/attachment.pl>
Formatting names.arg
5 messages · Adrienne Keller, Marc Schwartz, Ben Bolker +1 more
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'.
HTH,
Marc Schwartz
Adrienne Keller <adrienne.keller <at> umontana.edu> writes:
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:
[snip] Try "Dialium\nguianensis" etc. ?
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
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