2012-11-02 83 views
25

我具有被如此产生的绘图:显示一个大于或等于符号

ggplot(dt.2, aes(x=AgeGroup, y=Prevalence)) + 
    geom_errorbar(aes(ymin=lower, ymax=upper), colour="black", width=.2) + 
    geom_point(size=2, colour="Red") 

我控制X轴标签这样的:

scale_x_discrete(labels=c("0-29","30-49","50-64","65-79",">80","All")) + 

这工作,但我需要改变“> 80”标签改为“≥80”。

但是“≥80”显示为“= 80”。

如何显示大于等号?

+0

你可以去用 “> = 80”? –

+2

@JanDvorak,遗憾的是没有。这是为了出版,所以它需要尽可能好看。我想和> 79一起去,但高级作者特别想要≥80 –

+6

你试过'expression(“>> = 80)'?参见'?plotmath'。 – plannapus

回答

23

使用表达式的替代方法是Unicode字符,在这种情况下,Unicode字符'GREATER-THAN OR EQUAL TO'(U + 2265)。复制@ MNEL的例子

.d <- data.frame(a = letters[1:6], y = 1:6) 

ggplot(.d, aes(x=a,y=y)) + geom_point() + 
    scale_x_discrete(labels = c(letters[1:5], "\u2265 80")) 

Unicode是一个很好的选择,如果你很难记住复杂的表达式语法,或者如果你需要换行,这表达不允许。缺点是,特定的Unicode字符是否完全取决于您的图形设备和选择的字体。

+1

问题:'pdf'设备不支持这个字符,而是打印...。我不是在'ggplot'中工作,所以这可能不是该软件包中的问题,但是从基地R保存会很麻烦。 – MichaelChirico

+3

@MichaelChirico:解决方案:除非您有充足的理由使用pdf,否则使用'cairo_pdf相反。 – otsaw

+0

你能举一个这样一个令人信服的理由可能是什么样的例子吗? – MichaelChirico

17

你可以传递一个表达式(包括phantom(...)假内 领先>=label参数scale_x_discrete(...)

例如

.d <- data.frame(a = letters[1:6], y = 1:6) 

ggplot(.x, aes(x=a,y=y)) + geom_point() + 
    scale_x_discrete(labels = c(letters[1:5], expression(phantom(x) >=80)) 

enter image description here

?plotmath,详细了解创建数学表情和 this相关SO问答

4
plot(5, ylab=expression("T ">="5")) 

enter image description here