ggplot geom_text 在使用 R 数学符号时弄乱了文本顺序

ggplot geom_text is messing up text order when using R mathematical notation

我正在尝试使用 geom_textggplot 中标记点。我想使用 R 数学符号进行标记。例如,x 坐标 0.5 处的点应具有标签 1/2=0.5,其中 1/2 写为分数。我一直在尝试这段代码:

ggplot(data=NULL) +
  geom_point(aes(x=0.5, y=0)) +
  geom_text(aes(x=0.5, y=-0.1,
                label = paste("frac(1,2)"," = ", 1/2)), parse=TRUE) +
  xlim(-1,1) +
  ylim(-1, 1)

但是标签的顺序乱了,如下图所示:

而不是 1/2=0.5,我收到 =(1/2,0.5)。在我的标签文本中使用 frac() 时如何获得正确的顺序?

你的 label 应该放在 aes() 之外。

ggplot(data=NULL) +
  geom_point(aes(x=0.5, y=0)) +
  geom_text(aes(x=0.5, y=-0.1),
                label = expression(paste(frac(1,2), " = ", 0.5))) +
  xlim(-1,1) +
  ylim(-1, 1)

label 放在 aes 外面并使用双 ==,就像 help("plotmath") 中所说的那样。

ggplot(data=NULL) +
  geom_point(aes(x=0.5, y=0)) +
  geom_text(aes(x=0.5, y=-0.1),
            label = paste("frac(1, 2) == ", 1/2), parse=TRUE) +
  xlim(-1,1) +
  ylim(-1, 1)