我有以下数据框:
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'符号表示,括号也应该相应地显示。我尝试了很多 表达式() 但我无法得到正确的代表。
任何想法我怎么能很好地绘制这个?
答案 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("")