R中的上标图例文本

问题描述 投票:1回答:1

我目前正在尝试在R中用类似于Latex的图例文本上标。我有诸如"xx", "xxx", "yy", and "zz"的变量,并且想知道是否可以将它们自动转换为上标,例如Latex中的$x^2$。我知道ggplot的expression(paste0("x"^"2")),但不清楚如何实现它或自动更改文本。

matrix <- matrix(rexp(200, rate=.1), ncol=20)
df <- data.frame(matrix)
variables <- c("x","y","z","xx","xy","yy","xz","yz","zz","xxx")

df$variables <- variables

new.df <- melt(df, id.vars="variables")

ggplot(new.df, aes(x = variable, y = value, col=variables, group = variables))+
  geom_point()+
  geom_line()
r ggplot2 latex exponent superscript
1个回答
1
投票

enter image description here您仍然必须使用expression()

编辑:您可以将rlang的parse_exprs()与eval一起使用,以自动方式将vars转换为表达式:



#variables_ex <- rep(expression(paste(x^x[y])),10)
##EDIT: universal solution:

library(rlang)

variables <- c("x","y","z","xx","xy","yy","xz","yz","zz","xxx")

exlabel<-paste(variables,"^x[y]",sep="")


ggplot(new.df, aes(x = variable, y = value, col=variables, group = variables))+
  geom_point()+
  geom_line()+ labs(x = variables_ex)+
  scale_color_discrete(name = "Superlegend", labels= eval(parse_exprs(exlabel)))+
  theme( legend.text = element_text(color = "red"))

© www.soinside.com 2019 - 2024. All rights reserved.