Hello,

(You forgot to unlist() the result of strsplit.)

Another way, saving some space between characters is to use strheight().


rotate90 <- function(x, y, label){
        label <- unlist(strsplit(label, ''))
        y <- y - (seq_along(label) - 1)*strheight(label)
        list(x=x, y=y, label=label)
}

txt <- rotate90(5, 5, "Test rotate90")
plot(1:10)
text(txt$x, txt$y, txt$label)


Rui Barradas

Em 12-06-2012 21:02, Greg Snow escreveu:
If you insert `\n` between each letter, then it should do what you
want with a single call to text or mtext.  To expand on David's
example:

plot(1:10)
text(5,5, paste( strsplit(txvec, ''), collapse='\n') )



On Tue, Jun 12, 2012 at 10:16 AM, David Winsemius
<dwinsem...@comcast.net> wrote:

On Jun 12, 2012, at 9:49 AM, Stuart Rosen wrote:

For labelling a plot, I am trying to rotate a character string using
text() so that characters are upright and reading down, for example, ...

L
i
k
e

t
h
i
s
.

It appears that par crt does not work with text. Does anyone have any
other suggestions.


Just print the letters separately. Something like this untested use of
`mapply`:

mapply(text, labels=strsplit(txvec, ""),
        x=1,  # or some other appropriate number, should get recycled.
        y=seq(start, end, length=nchar(txvec) )

--

David Winsemius, MD
West Hartford, CT


______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.




______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to