我建议这种方法。你可以为标签构建另一个变量,然后启用
parse=T
选项从
geom_text()
以便拥有所需的图表。以下是代码:
library(ggplot2)
library(tidyverse)
my_exp <- as.character(expression('my_exp'[s][u][b]))
my_data <-
data.frame(
var_1 = c("a", "b", "c"),
var_2 = c(1, 2, 3),stringsAsFactors = F
)
my_data$label <- ifelse(my_data$var_1=='a',my_exp,my_data$var_1)
my_data %>%
ggplot(aes(x = var_1, y = var_2))+
geom_text(aes(label = label),parse = T)
输出:
![在此输入图片描述](https://istack.dev59.com/2ilaF.webp)
更新:如果标签存在问题,这是一个代码示例:
my_exp <- "14~M~my_exp[s][u][b]"
my_data <-
data.frame(
var_1 = c("a", "b", "c"),
var_2 = c(1, 2, 3),stringsAsFactors = F
)
my_data$label <- ifelse(my_data$var_1=='a',my_exp,my_data$var_1)
my_data %>%
ggplot(aes(x = var_1, y = var_2))+
geom_text(aes(label = label),parse = T)
输出:
![输入图像描述](https://istack.dev59.com/qD1Om.webp)