显示大于或等于的符号

时间:2012-11-02 09:59:12

标签: r ggplot2 plotmath

我有一个由此产生的情节:

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”。

如何显示大于或等号?

4 个答案:

答案 0 :(得分:33)

使用表达式的替代方法是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 :(得分:19)

您可以传递一个表达式(包括phantom(...)来伪造其中的前导>= label的{​​{1}}参数

例如

scale_x_discrete(...)

enter image description here

有关创建数学表达式的更多详细信息,请参阅 .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)) this相关SO问答

答案 2 :(得分:4)

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

enter image description here

答案 3 :(得分:0)

您可以使用

expression("">=80)

因此,您的全轴标签如下所示:

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

使用unicode时,我在导出绘图时遇到了麻烦,但是表达式函数更加一致。