开发者

multicolor text on chart

开发者 https://www.devze.com 2023-01-07 17:24 出处:网络
Greetings, I need to display multicolor text on my chart for example early &l开发者_如何转开发t;- 30

Greetings,

I need to display multicolor text on my chart for example

early &l开发者_如何转开发t;- 30
ontime <- 70
late <- 25

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

I need values for early, ontime, late in txt, be blue,green, and red respectively.

I found following post on multicolor text in title, however I wasn't able to adapt it to my problem http://blog.revolutionanalytics.com/2009/01/multicolor-text-in-r.html

Thank you for your help


How about this code written by 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")) 


Following the exampe you mentioned would give something like:

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号