首页 > 解决方案 > R中的上标图例文本

问题描述

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

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()

标签: rggplot2latexexponentsuperscript

解决方案


在此处输入图像描述 你仍然必须使用表达式()

编辑:您可以使用 rlang 的 parse_exprs() 和 eval 自动将您的变量转换为表达式:



#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"))


推荐阅读