Skip to content

how to word-wrap text in labels in plots?

4 messages · Eik Vettorazzi, Jim Lemon, Hans Ekbrand

#
c <- structure(c(2L, 2L, 1L, 3L, 4L, 2L, 3L, 2L, 3L, 2L, 5L), .Label = c("foo", 
+ "bar", "a really really long variable label mostly here to show the need of word-wrapping text in labels", 
+ "a not so important value", "baz"), class = "factor")
plot(c)

Is there a way to get the long variable labels to automatically wrap so that all labels can be shown?

Alternatively, is there a way to get the labels truncated, possibly with ".." appended?
#
Hi Hans,
strwrap is your friend. "\n" inserts a cr in a line of text.

wordwrap<-function(x,len) paste(strwrap(x,width=len),collapse="\n")
par(mar=c(11,3,2,1))
tmp<-plot(c,axes=F)
axis(2)
axis(1,at=tmp,labels=sapply(levels(c),wordwrap,len=15),padj=1)
box()

For unique abbreviations see ?abbreviate

hth.


Hans Ekbrand schrieb:

  
    
#
Hans Ekbrand wrote:
As the first question has already been answered, you can truncate 
strings like this example from the htmlize function in the prettyR package:

 navitem<-ifelse(nchar(Rcommand)>20,
  paste(paste(unlist(strsplit(Rcommand,""))[1:18],sep="",collapse=""),
   "...",sep="",collapse=""),Rcommand)

Jim
#
Thanks to Jim and Eik!

I really appreciate your help, and I think can use your suggestions
and perhaps write a wrapper for plot that integrates them.