如何在ggplot2图例中使用下标[R]

Ric*_*ron 25 r ggplot2

我可以在ggplot2传奇中使用下标吗?我在传说和其他地方的希腊字母上看到了这个问题,但我无法弄清楚如何适应它.

我认为使用expression(),在轴标签中工作,可以做到这一点.但我的尝试失败了.谢谢!

library(ggplot2)
temp <- data.frame(a = rep(1:4, each = 100), b = rnorm(4 * 100), c = 1 + rnorm(4 * 100))
names(temp)[2:3] <- c("expression(b[1])", "expression(c[1])")
temp.m <- melt(temp, id.vars = "a")
ggplot(temp.m, aes(x = value, linetype = variable)) + geom_density() + facet_wrap(~ a)
Run Code Online (Sandbox Code Playgroud)

chl*_*chl 24

以下应该有效(删除您的行names(temp) <-...):

ggplot(temp.m, aes(x = value, linetype = variable)) + 
  geom_density() + facet_wrap(~ a) +    
  scale_linetype_discrete(breaks=levels(temp.m$variable),
                          labels=c(expression(b[1]), expression(c[1])))
Run Code Online (Sandbox Code Playgroud)

请参阅help(scale_linetype_discrete)可用的自定义(例如,图例标题name=).


小智 14

如果要将希腊符号等合并到主要刻度标签中,请使用未评估的表达式.

对于条形图,我做了以下事情:

library(ggplot2)
data <- data.frame(names=tolower(LETTERS[1:4]),mean_p=runif(4))

p <- ggplot(data,aes(x=names,y=mean_p))
p <- p + geom_bar(colour="black",fill="white")
p <- p + xlab("expressions") + scale_y_continuous(expression(paste("Wacky Data")))
p <- p + scale_x_discrete(labels=c(a=expression(paste(Delta^2)),
                               b=expression(paste(q^n)),
                               c=expression(log(z)),
                               d=expression(paste(omega / (x + 13)^2))))
p
Run Code Online (Sandbox Code Playgroud)

barplot与希腊字母和上标

  • 有趣的是,这个问题是关于下标的,但你的答案只有上标:( 虽然 `x^2` 对我有用,但 `x_2` 不行。 (4认同)