Ggplot2中的乳胶字符

时间:2019-05-23 20:29:35

标签: r ggplot2 latex

我想做一个图,在其中一些图例标题中,我想引入一些Latex语法,但是输出不会产生预期的结果。

作为MWE,这是我使用的代码:

library(ggplot2)
library(latex2exp)

  ggplot(data, aes(x = Debt, y = Gini_tra, colour = Gamma_param)) +
  geom_line()+
  scale_color_discrete(breaks = levels(df_tra$Gamma_param), 
                       labels  = c("Redistribution", "Egalitarian Tax", TeX("$\\gamma = 0.76$"), TeX("$\\gamma = 0.9$"), "Flat Tax"))

我希望从这段代码中看到γ=0.76γ=0.9,但是我只会看到0.760.9

我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

我认为这是您正在寻找的解决方案:

library(ggplot2)
library(latex2exp)


df <- data.frame(value = rnorm(100, mean = 3),
                 group = as.factor(sample(c(1, 2),
                                          size = 100, replace = T)))


ggplot(df , aes(x = value, y = value, colour = group)) +
  geom_point() + 
  scale_color_hue(labels = unname(TeX(c("$\\gamma = 0.76$", "$\\gamma = 0.96$"))))

我的直白是这篇文章的第二个答案:

How to add Latex code in ggplot2 legend labels?

答案 1 :(得分:1)

我们还可以使用Base R中的expression

library(ggplot2)

ggplot(mtcars, aes(x = hp, y = disp, colour = as.factor(carb))) +
  geom_line()+
  scale_color_discrete(breaks = levels(as.factor(mtcars$carb)), 
                       labels  = c("Redistribution", 
                                   "Egalitarian Tax", 
                                   expression(gamma~"= 0.76"), 
                                   expression(gamma~"= 0.9"), 
                                   "Flat Tax",
                                   "some label1")) +
  theme(legend.text.align = 0)

输出:

enter image description here