ggplot 轴标签中的数学(集合)符号

Mathematical (set) symbol in ggplot axis label

我正在尝试将数学符号包含到 ggplot 轴标签中。考虑以下代码。

library(ggplot2)
df <- data.frame(dose=c("D0.5", "D1", "D2"), len=c(4.2, 10, 29.5))
ggplot(data=df, aes(x=dose, y=len, group=1)) +
  ylab("length")+
  geom_line()+
  geom_point()

我现在想在 y 轴描述中包含 len ("Length") 的范围,并使用符号 Length ∈ [0, 10],但找不到将 "element of" 符号放入标签。

对于特殊符号,您可以通过转义符\U####引用它们的Unicode值。 ∈是Unicode(U+2208),所以使用\U2208可以用来粘贴∈符号。

所以:

> 'Length \U2208 [0, 10]'
[1] "Length ∈ [0, 10]"

然后你就可以在你的剧情代码中使用ylab('Length \U2208 [0, 10]')

有一个很棒的post here 经历了不同的方式,这里我用expression

ggplot(data=df, aes(x=dose, y=len, group=1)) +
  ylab("length")+
  geom_line()+
  geom_point() +
  ylab(expression("Length " ~ epsilon ~ " [0, 10]"))

编辑: 由于元素的符号是 \in,表达式代码不起作用,因为 in 是一个内置函数。可能有解决方法,但我不得不求助于使用 latex2exp

library(latex2exp)


ggplot(data=df, aes(x=dose, y=len, group=1)) +
  ylab("length")+
  geom_line()+
  geom_point() +
  ylab(TeX(sprintf("Length $\in$ \[0, 10\]")))