如何在ggplot2图例标签中添加Latex代码?

k88*_*074 5 latex r ggplot2

考虑以下示例:

p <- ggplot(data = data.frame(A=c(1,2,3,4,5,6,7,8),B=c(4,1,2,1,3,2,4,1),C=c("A","B","A","B","A","B","A","B")))
p <- p + geom_line(aes(x = A, y = B,color = C))
Run Code Online (Sandbox Code Playgroud)

我想将图例中的标签从“ A”和“ B”更改为Latex公式,分别说“ $ A ^ h_ {tk} $”和“ $ B ^ h_ {tk} $”。

显然,根据此处的答案,存在实现此目的的方法。但是,我真的很努力使其工作。有人可以为我分解吗?

Ror*_*lan 6

要使用真正的LaTeX语法,可以使用该latex2exp软件包。注意使用unname(),这是必要的。

library(ggplot2)
library(latex2exp)
df <- data.frame(A = c(1,2,3,4,5,6,7,8),
                 B = c(4,1,2,1,3,2,4,1),
                 C = c("A","B","A","B","A","B","A","B")
)
ggplot(df) + 
  geom_line(aes(x = A, y = B,color = C)) +
  scale_color_discrete(labels = unname(TeX(c("$A_{t-k}^h", "$B_{t-k}^h"))))
Run Code Online (Sandbox Code Playgroud)

reprex包(v0.2.0)创建于2018-05-29 。

  • 这很有效,尽管对“\foo”调用有一点警告。我必须在代码中使用 `TeX("$\\Delta")` 。请注意,可能需要使用两次“\\”转义符。 (4认同)

GGa*_*mba 5


library(ggplot2)
df <- data.frame(A = c(1,2,3,4,5,6,7,8),
                 B = c(4,1,2,1,3,2,4,1),
                 C = c("A","B","A","B","A","B","A","B")
                 )
ggplot(df) + 
    geom_line(aes(x = A, y = B,color = C)) +
    scale_color_discrete(labels = c(expression(A[t-k]^h), expression(B[t-k]^h)))
Run Code Online (Sandbox Code Playgroud)