2017-06-02 83 views
0

我有以下數據框:GGPLOT2繪製數學表達式

colframe <- data.frame(x=rep(1,5), y=seq(1,2,.25)) 

和載體

texti <- c("R %in% [0,0.01)", "R %in% [0.01,0.05)", "R %in% [0.05,0.1)", "R %in% [0.1,0.15)", "R > 0.15") 
l <- colorRampPalette(c("red","yellow","green")) 
hexi <- l(5) 

,我想用

ggplot(colframe, aes(x=x, y=y)) + 
    geom_point(color=hexi[5:1], size=7) + 
    geom_label(aes(label=texti, group=texti), x=1.05, hjust=0) + 
    theme(legend.position = "none", 
     panel.background = element_blank(), 
     axis.text = element_blank(), 
     axis.ticks = element_blank()) + 
    xlab("") + ylab("") 

顯然繪製,在$ $應由'元素輸入'符號表示,括號也應相應顯示。我嘗試了很多 表達式() 但我無法獲得正確的表示。

任何想法如何我可以很好地陰謀?

回答

2

設置parse=TRUEgeom_label()之內得到如?plotmath中所述的表達式。這意味着你必須重寫你的intervalls。我舉例說明它如何與所有標籤的文字一起使用:

texti <- rep("R %in% group('[',list(0,0.01),')')",5) 

ggplot(colframe, aes(x=x, y=y)) + 
    geom_point(color=hexi[5:1], size=7) + 
    geom_label(aes(label=texti, group=texti), x=1.05, hjust=0, parse = TRUE) + 
    theme(legend.position = "none", 
     panel.background = element_blank(), 
     axis.text = element_blank(), 
     axis.ticks = element_blank()) + 
    xlab("") + ylab("")