2010-07-15 3 views
2

Привет,многоцветный текст на диаграмме

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

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

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

мне нужны значения рано, OnTime, поздно в TXT, быть синий, зеленый и красный соответственно.

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

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

ответ

5

Как насчет этого кода, написанного Jim Lemon?

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")) 
+0

Эта функция отлично работает !!! – ilya

1

После exampe вы упомянули бы дать что-то вроде:

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]) 
} 
+0

Благодарим вас за ответ. – ilya

Смежные вопросы