[R] Rotating characters in text

Rui Barradas ruipbarradas at sapo.pt
Tue Jun 12 23:44:24 CEST 2012


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
> <dwinsemius at 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 at 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.
>
>
>



More information about the R-help mailing list