From: Jan P. Smit <janpsmit_at_gmail.com>

Date: Fri 15 Apr 2005 - 11:45:09 EST

*>
*

> [1] This is a long label 1 This is a long label 2

*> [3] This is a long label 3 This is a long label 4
*

*> [5] This is a long label 5 This is a long label 6
*

*> [7] This is a long label 7 This is a long label 8
*

*> [9] This is a long label 9 This is a long label 10
*

*> 10 Levels: This is a long label 1 ... This is a long label 9
*

*>
*

*>
*

*>
*

*>
*

*>
*

*>
*

> [1] "This is\na long\nlabel 1" "This is\na long\nlabel 2"

*> [3] "This is\na long\nlabel 3" "This is\na long\nlabel 4"
*

*> [5] "This is\na long\nlabel 5" "This is\na long\nlabel 6"
*

*> [7] "This is\na long\nlabel 7" "This is\na long\nlabel 8"
*

*> [9] "This is\na long\nlabel 9" "This is\na long\nlabel 10"
*

*>
*

*>
*

*>
*

*>
*

*>
*

*> HTH,
*

*>
*

*> Marc Schwartz
*

*>
*

*>
*

> On Thu, 2005-04-14 at 16:14 +0700, Jan P. Smit wrote:

*>
*

*>
*

*>
*

> ______________________________________________

*> R-help@stat.math.ethz.ch mailing list
*

*> https://stat.ethz.ch/mailman/listinfo/r-help
*

*> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
*

>

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Apr 15 11:52:07 2005

Date: Fri 15 Apr 2005 - 11:45:09 EST

Dear Marc,

Excellent, this is exactly what I was looking for. The only thing I had to change in your code was turning 'short.labels' into a factor.

Many thanks and best regards,

Jan

Marc Schwartz wrote:

> Building on Tom's reply, the following should work:

*>
**>
*

>>labels <- factor(paste("This is a long label ", 1:10)) >>labels

> [1] This is a long label 1 This is a long label 2

>>short.labels <- sapply(labels, function(x) paste(strwrap(x,

>

> 10), collapse = "\n"), USE.NAMES = FALSE)

>>short.labels

> [1] "This is\na long\nlabel 1" "This is\na long\nlabel 2"

>>mp <- barplot2(1:10) >>mtext(1, text = short.labels, at = mp, line = 2)

> On Thu, 2005-04-14 at 16:14 +0700, Jan P. Smit wrote:

>>Dear Tom, >> >>Many thanks. I think this gets me in the right direction, but >>concatenates all levels into one long level. Any further thoughts? >> >>Best regards, >> >>Jan >> >> >>Mulholland, Tom wrote: >> >>>This may not be the best way but in the past I think I have done something like >>> >>>levels(x) <- paste(strwrap(levels(x),20,prefix = ""),collapse = "\n") >>> >>>Tom >>> >>> >>> >>>>-----Original Message----- >>>>From: Jan P. Smit [mailto:janpsmit@gmail.com] >>>>Sent: Thursday, 14 April 2005 11:48 AM >>>>To: r-help@stat.math.ethz.ch >>>>Subject: [R] Wrapping long labels in barplot(2) >>>> >>>> >>>>I am using barplot, and barplot2 in the gregmisc bundle, in the >>>>following way: >>>> >>>>barplot2(sort(xtabs(expend / 1000 ~ theme)), >>>> col = c(mdg7, mdg8, mdg3, mdg1), horiz = T, las = 1, >>>> xlab = "$ '000", plot.grid = T) >>>> >>>>The problem is that the values of 'theme', which is a factor, are in >>>>some cases rather long, so that I would like to wrap/split them at a >>>>space once they exceed, say, 20 characters. What I'm doing now is >>>>specifying names.arg manually with '\n' where I want the >>>>breaks, but I >>>>would like to automate the process. >>>> >>>>I've looked for a solution using 'strwrap', but am not sure >>>>how to apply >>>>it in this situation. >>>> >>>>Jan Smit >>>>

> ______________________________________________

>

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Apr 15 11:52:07 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:31:11 EST
*