在 ggplot2 中使用 bquote() 和 expression(paste()) 标签的区别

Ara*_*shi 5 r ggplot2

所以 ggplot 的两条线都得到了大致相同的图,但哪一条是首选?我通常会看到一个或另一个,但我找不到两者之间的明确比较。任何照亮此的光将不胜感激,谢谢!

library(ggplot2)
ggplot(cars, aes(x=dist, y=speed))+geom_line()+labs(x='Distance travelled in m', y=expression(paste('Speed in' * m^2)))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

ggplot(cars, aes(x=dist, y=speed))+geom_line()+labs(x='Distance travelled in m', y=bquote('Speed in' * m^2))
Run Code Online (Sandbox Code Playgroud)

使用 bquote

编辑:我意识到我在 ylab 中的“in”之后忘记了一个空格,忽略那个错误......

Rol*_*and 3

expression('Speed in' ~ m^2)
Run Code Online (Sandbox Code Playgroud)

~产生一个空格,不同的参数用paste分隔,(但paste这里不需要)。看help("plotmath")

bquote是一个不同的野兽。它可以让你这样做:

unit <- quote(m^2)
ggplot(cars, aes(x=dist, y=speed))+
  geom_line()+
  labs(x='Distance travelled in m', 
       y=bquote('Speed in' ~ .(unit)))
Run Code Online (Sandbox Code Playgroud)