【问题标题】:Displaying a greater than or equal sign显示大于或等于号
【发布时间】:2012-10-22 23:30:26
【问题描述】:

我有一个这样生成的情节:

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

如何显示大于等于号?

【问题讨论】:

  • @JanDvorak,很遗憾没有。它是为了出版,所以它需要看起来尽可能好。我想选择 >79,但资深作者特别想要 ≥80
  • 你试过expression("">=80)吗?见?plotmath
  • @plannapus - 做得很好!谢谢-如果您回答,我会投票并接受...
  • 看来@mnel 比我快:)
  • 我在看到你的评论之前就发布了(如果这样会更好?)

标签: r ggplot2 plotmath


【解决方案1】:

您可以传递一个表达式(包括phantom(...) 来伪造一个前导>=labelscale_x_discrete(...) 参数

例如

 .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], expression(phantom(x) >=80))

有关创建数学表达式和 this相关SO问答

【讨论】:

    【解决方案2】:

    你可以使用

    expression("">=80)
    

    所以你的全轴标签看起来像:

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

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

    【讨论】:

      【解决方案3】:
      plot(5, ylab=expression("T ">="5"))
      

      【讨论】:

        【解决方案4】:

        使用表达式的替代方法是 Unicode 字符,在本例中为 Unicode 字符“大于等于”(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 字符是否有效取决于您选择的图形设备和字体。

        【讨论】:

        • 问题:pdf 设备不支持此字符,而是打印...。我不在ggplot 工作,所以也许这不是该软件包中的问题,但从基本 R 中保存很麻烦。
        • @MichaelChirico:解决方案:除非您有令人信服的理由使用pdf,否则请改用cairo_pdf
        • 你能举例说明这样一个令人信服的理由吗?
        • @otsaw 我在使用 postscript 生成 eps 的设备时遇到了同样的问题。有您知道的cairo_postscript 或类似的解决方案吗?
        • 在调用 paste 时工作,这很好!
        猜你喜欢
        • 2015-08-03
        • 2011-01-25
        • 1970-01-01
        • 1970-01-01
        • 2013-09-02
        • 2015-08-11
        • 1970-01-01
        相关资源
        最近更新 更多