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

Sam*_*Sam 92 unicode graphics r utf-8 ggplot2

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

更新:我看了一下链接,然而,没有很好的方法来描述我想要做的事情.

Ram*_*ath 136

这是一个优秀wiki 的链接,解释了如何在ggplot2中添加希腊符号.总之,以下是您获取希腊符号的方法

  1. 文字标签:parse = T在里面使用geom_textannotate.
  2. 轴标签:使用expression(alpha)获得的希腊字母.
  3. Facet标签:labeller = label_parsed在里面使用facet.
  4. 图例标签: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);
Run Code Online (Sandbox Code Playgroud)

有关执行此操作时可用的各种符号以及如何使用它们的完整文档,请参阅?plotmath.

  • 我希望在希腊字母后添加一个星号('*').有人知道怎么做吗? (8认同)
  • 我最近了解到另一种选择是使用“substitute”,这也适用于“expression”不起作用的地方,甚至允许其他格式,如“italics”、“bold”等。 (2认同)

Mat*_*ius 34

使用expression(delta)'delta'表示小写?和'Delta'来获得资金?.

这是希腊字符的完整列表:

Αα阿尔法
Ββ的β
Γγ的γ
Δδ增量
Εε的ε-
Ζζζ电
ΗηETA
ΘθTHETA
Ιι丝毫
Κκ卡帕
Λλ的λ
Μμ亩
ΝνNU
ΞξXI
ΟοOMICRON
ΠπPI
Ρρ RHO
σσ西格玛
ττ的tau
υυ埃普西隆
φφ披
χχ智
ψψPSI
Ωω欧米加

编辑:复制评论,与其他单词一起使用时使用如下:expression(Delta*"price")

  • 表达式(Delta*"price")有效.不喜欢语法. (6认同)
  • 表达式(德尔塔*价格) (3认同)
  • 谢谢.但究竟是怎么回事?`xlab(表达式(Delta)价格)`给出错误 (2认同)

Mat*_* L. 28

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

不需要expression或其他包裹.
不确定这是否是ggplot的新功能,但它确实有效.它还可以轻松混合希腊语和常规文本(例如在刻度线中添加'*')

只需在文本字符串中使用unicode字符即可.似乎适用于我能想到的所有选项.

library(ggplot2)
ggplot(mtcars, 
       aes(mpg, disp, color=factor(gear))) + 
  geom_point() + 
  labs(title="Title (\u03b1 \u03a9)", # works fine
       x= "\u03b1 \u03a9 x-axis title",    # works fine
       y= "\u03b1 \u03a9 y-axis title",    # works fine
       color="\u03b1 \u03a9 Groups:") +  # works fine
  scale_x_continuous(breaks = seq(10, 35, 5), 
                     labels = paste0(seq(10, 35, 5), "\u03a9*")) + # works fine; to label the ticks
  ggrepel::geom_text_repel(aes(label = paste(rownames(mtcars), "\u03a9*")), size =3) + # works fine 
  facet_grid(~paste0(gear, " Gears \u03a9"))
Run Code Online (Sandbox Code Playgroud)

reprex包创建于2018-11-14 (v0.2.1)

  • 好答案。有关Unicode字符的更多信息,请参见:/sf/ask/1938351061/ (4认同)
  • 这是最好的方法,因为您不喜欢由`expression`或`bquote`形成的对象类型-最终得到的字符对象可以用任何其他使用字符对象的方式使用。 (2认同)
  • 这不仅是最简单的方法,而且也是最好的方法,因为它在大多数情况下都有效并且不依赖于其他函数。 (2认同)

onl*_*tom 13

你不需要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))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

此外,一些评论(此时尚未回答)询问在希腊字母后加上星号(*).expression(alpha~"*")有效,所以我建议尝试一下.

有关获取的更多评论? Price,我找到了实现这一目标最直接的方法expression(Delta~price)).如果你需要在希腊字母之前添加一些东西,你也可以这样做: expression(Indicative~Delta~price)它可以让你:

在此输入图像描述