многоцветный текст на графике - PullRequest
2 голосов
/ 15 июля 2010

Greetings,

Мне нужно отобразить многоцветный текст на моем графике, например:

early <- 30
ontime <- 70
late <- 25

txt <- paste(early, ontime, late, sep='/')
plot(1:2, type='n')
text(1.5, 1.5, txt)

Мне нужны значения для раннего, своевременного, позднего времени в txt, синего, зеленого и красногосоответственно.

Я нашел следующий пост в многоцветном тексте в заголовке, однако мне не удалось приспособить его к моей проблеме http://blog.revolutionanalytics.com/2009/01/multicolor-text-in-r.html

Спасибо за вашу помощь

Ответы [ 2 ]

5 голосов
/ 15 июля 2010

Как насчет этого кода, написанного Джимом Лемоном ?

concat.text<-function(x,y,txt,col) {
    thisx<-x
    for(txtstr in 1:length(txt)) {
        text(thisx,y,txt[txtstr],col=col[txtstr],adj=0)
        thisx<-thisx+strwidth(txt[txtstr])
    }
}
plot(0,xlim=c(0,1),ylim=c(0,1),type="n")
ctext<-c("Roses are ","red, ","violets are ","purple")
concat.text(0,0.5,ctext,col=c("black","red","black","purple")) 
1 голос
/ 15 июля 2010

После упомянутого вами экзамена вы получите что-то вроде:

early <- 30
ontime <- 70
late <- 25

txt <- paste(early, ontime, late, sep='/')
plot(1:2, type='n')
vars <- list(early=early,ontime=ontime,late=late)
cols <- c('red', 'green', 'blue')
for (i in 1:3) {
    tmpvars <- vars
    tmpvars[-i] <- paste("phantom(",tmpvars[-i],")",sep="")
    expr <- paste(tmpvars, collapse="*")
    text(1.5, 1.5,
        parse(text=expr),
        col=cols[i])
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...