How to place +/- plus minus operator in the text annotation of plot (ggplot2)?

问题描述 投票:0回答:2

我尝试了以下方法,但对我不起作用:

a <- ggplot()
a <- a + geom_point(aes(x=seq(0,1,0.1), y=seq(0,1,0.1)))
a <- a + annotate("text", x=0.5, y=0.3, label="myplot")
a <- a + annotate("text", x=0.5,y=0.2,label=expression(%+-%))

我也尝试过How to annotate() ggplot with latex 指出的以下方法,但没有运气:

a <- a + annotate("text", x=0.5, y=0.1, label="%+-%", parse=TRUE)

这也不管用:

a <- a + annotate("text", x=0.5, y=0.1, label="\pm", parse=TRUE)
r text plot ggplot2 latex
2个回答
29
投票

可以使用unicode表示(

\u00B1
):

a <- ggplot()
a <- a + geom_point(aes(x=seq(0,1,0.1), y=seq(0,1,0.1)))
a <- a + annotate("text", x=0.5, y=0.3, label="myplot")
a + annotate("text", x=0.5, y=0.2, label="\u00B1")

或者您可以直接使用

±
符号,通过从某处复制和粘贴它。

a + annotate("text", x=0.5, y=0.2, label="±")

10
投票

这有效:

a0 <- ggplot()
a0 <- a0 + geom_point(aes(x=seq(0,1,0.1), y=seq(0,1,0.1)))
a0 + annotate("text", x=0.5, y=0.1, label="'' %+-% '' ", parse=TRUE)

关键思想是

%+-%
是一个operator,所以它必须对某些东西进行操作,即它必须是
x %+-% y
的形式;在这种情况下,我已将
x
y
设为空白字符串。

你也可以使用

phantom()

annotate("text", x=0.5, y=0.1, label = "phantom() %+-% phantom()", parse = TRUE)

如果你想使用像

\pm
这样的完整的LaTeX风格的标记,你需要进入tikzDevice的兔子洞。然而,
latex2exp::TeX
通常可以提供有用的提示,例如:

latex2exp::TeX("\\pm")
##    LaTeX: \pm 
## plotmath: phantom() %+-% phantom() 
© www.soinside.com 2019 - 2024. All rights reserved.