r - 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()
解决方案
编辑:您可以使用 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"))
推荐阅读
- javascript - 如何从字符串数组中删除双引号
- docker-swarm - Traefik 仪表板上的 401 > 健康是因为 Basic Auth HTTP?
- python-3.x - Statsmodels 季节性分解 - 趋势不是直线
- reactjs - react axios setState渲染循环错误
- php - 如何使用 php 服务器在 amazon linux 上安装 maxmind geoLite2?
- wordpress - WP Woocommerce 显示弹出窗口添加到购物车按钮
- git - 如何删除一些过去重复的 git 提交?
- mysql - 从 mysql 5.7 中的 json 数组中提取键
- python - 如果使用条件,应用回调不会更新图表
- android - 隐藏导航抽屉中某些片段的工具栏中的菜单图标