multicolor text on chart

后端 未结 2 1666
生来不讨喜
生来不讨喜 2020-12-11 23:00

Greetings,

I need to display multicolor text on my chart for example

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

txt <- paste(early, ontime, la         


        
相关标签:
2条回答
  • 2020-12-11 23:38

    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")) 
    
    0 讨论(0)
  • 2020-12-11 23:51

    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 讨论(0)
提交回复
热议问题