ggplot2绘制数学表达式

时间:2017-06-02 07:14:46

标签: r 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("")

显然,$ in $应该用'element in'符号表示,括号也应该相应地显示。我尝试了很多     表达式() 但我无法得到正确的代表。

任何想法我怎么能很好地绘制这个?

1 个答案:

答案 0 :(得分:2)

parse=TRUE内设置geom_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("")