R 如何在ggplot2中使用希腊符号?

R 如何在ggplot2中使用希腊符号?,r,graphics,unicode,utf-8,ggplot2,R,Graphics,Unicode,Utf 8,Ggplot2,我的类别需要用希腊字母命名。我使用的是ggplot2,它可以很好地处理数据。不幸的是,我不知道如何将这些希腊符号放在x轴上(在记号处),并使它们出现在图例中。有什么办法吗 更新: 我看了一下,但是,没有描述好的方法来完成我想做的事情 这是一个非常好的wiki,它解释了如何在ggplot2中放置希腊符号。总之,以下是获取希腊符号的步骤 文本标签:使用parse=T内部geom_Text或注释 轴标签:使用表达式(alpha)获取希腊字母 Facet标签:使用labeller=label\u解析内部

我的类别需要用希腊字母命名。我使用的是
ggplot2
,它可以很好地处理数据。不幸的是,我不知道如何将这些希腊符号放在x轴上(在记号处),并使它们出现在图例中。有什么办法吗

更新: 我看了一下,但是,没有描述好的方法来完成我想做的事情

这是一个非常好的wiki,它解释了如何在ggplot2中放置希腊符号。总之,以下是获取希腊符号的步骤

  • 文本标签:使用
    parse=T
    内部
    geom_Text
    注释
  • 轴标签:使用
    表达式(alpha)
    获取希腊字母
  • Facet标签:使用
    labeller=label\u解析
    内部
    Facet
  • 图例标签:在图例标签中使用
    bquote(alpha==(value))
  • 您可以在链接中看到这些选项的详细用法

    编辑。在记号上使用希腊符号的目的可以实现如下

    require(ggplot2);
    data(tips);
    p0 = qplot(sex, data = tips, geom = 'bar');
    p1 = p0 + scale_x_discrete(labels = c('Female' = expression(alpha),
                                          'Male'   = expression(beta)));
    print(p1);
    
    有关执行此操作时可用的各种符号以及如何使用这些符号的完整文档,请参见
    ?plotmath

    使用
    表达式(delta)
    ,其中“delta”表示小写字母
    δ
    ,而“delta”表示大写字母
    Δ

    以下是希腊字符的完整列表:

    αα
    Βββ
    Γγγ
    Δδδ
    εεεε
    Ζζzeta
    Ηηeta
    Θθθ
    ιiota
    κ-κ-κ
    λλλλλ
    Μμmu
    Ννnu
    Ξξxi
    οomicron
    ππpi
    Ρρrho
    ∑σσ
    τττ
    Υñupsilon
    Φφφφφ
    Χχchi
    ψψpsi
    Ωωω


    编辑:从注释中复制,当与其他词一起使用时,使用诸如:
    expression(Delta*“price”)
    您不需要
    latex2exp
    包来完成您想要做的事情。下面的代码就可以做到这一点

    ggplot(smr, aes(Fuel.Rate, Eng.Speed.Ave., color=Eng.Speed.Max.)) + 
      geom_point() + 
      labs(title=expression("Fuel Efficiency"~(alpha*Omega)), 
    color=expression(alpha*Omega), x=expression(Delta~price))
    

    此外,一些评论(目前尚未回答)询问在希腊字母后添加星号(*)<代码>表达式(alpha~“*”)
    有效,因此我建议尝试一下

    更多关于获取
    ΔPrice
    的评论,我发现最直接的方法是
    表达式(Delta~Price))
    。如果需要在希腊字母前添加内容,也可以这样做:
    expression(指示性的~Delta~价格)
    它可以让您:


    最简单的解决方案:使用Unicode字符

    无需
    表达式
    或其他软件包。
    不确定这是否是ggplot的较新功能,但它可以工作。 它还可以轻松地混合希腊语和常规文本(如在记号中添加“*”)

    只需在文本字符串中使用unicode字符。 似乎对我能想到的所有选项都很有效。 编辑:以前它在镶嵌面标签中不起作用。这显然在某一点上得到了解决

    库(ggplot2)
    ggplot(mtcars,
    aes(mpg、disp、颜色=系数(档位))+
    几何点()
    实验室(title=“title(\u03b1\u03a9)”,#工作正常
    x=“\u03b1\u03a9 x轴标题”,#工作正常
    y=“\u03b1\u03a9 y轴标题”,#工作正常
    color=“\u03b1\u03a9组:”)+#工作正常
    比例x连续(中断=顺序(10,35,5),
    标签=粘贴0(序号(10,35,5),“\u03a9*”)+#效果良好;标记记号
    ggrepel::geom_text_repel(aes(标签=粘贴(行名(mtcars),“\u03a9*”),大小=3)+#工作正常
    平面网格(~paste0(齿轮,“齿轮\u03a9”))
    


    由(v0.3.0)于2019-08-28创建的

    请参见此处对
    表达式
    函数的讨论:是否有任何关于从ggplot2获取
    视口的提示。如果能做到这一点,我相信更改x-tic标记将是直接的。您可以使用
    latex2exp
    package:我希望这些希腊符号来标记tic。我不确定我是否明白这个答案。我会试试这个,然后回信。谢谢你的指导。这至少对我来说不起作用。谢谢你的指针。@Sam,请查看我的编辑中的示例代码。它会沿着x轴标记为您提供希腊符号。这就是你要找的吗?我想在希腊字母后面加一个星号('*')。有人知道怎么做吗?我最近了解到另一种选择是使用
    替换
    ,这也适用于
    表达式
    不起作用的地方,甚至允许使用其他格式,如
    斜体
    粗体
    等。我如何获得
    Δprice
    这样的标签<代码>表达式(Deltaprice)
    不起作用,
    表达式(Deltaprice)
    谢谢。但这到底是怎么回事
    xlab(表达式(Delta)price)
    给出了一个errorexpression(Delta*price)有没有办法让希腊语形式(相对于拉丁语形式)升华?参见与拉丁语Y的对应关系(我想要类似于中的第三个字符)表达式(Delta*“price”)的工作原理。不喜欢语法。回答得好。有关unicode字符的更多信息,请参阅:非常灵活!!这是最好的方法,因为你不必对
    expression
    bquote
    形成的对象类型吹毛求疵-你最终会得到一个字符对象,你可以用任何其他方式使用字符对象。这不仅是最简单的方法,也是最好的方法,因为它在大多数情况下都能工作,并且不依赖于其他函数。这会生成大量警告,在grid.Call(C_textBounds,as.graphicsAnnot(x$label),x$x,x$y,:“mbcsToSbcs中的转换失败在3σ上”:点替换为