将单个分类 geom_point 区间标签更改为希腊表达式 ggplot

change single categorical geom_point interval label to greek expression ggplot

我需要将绘图中的单个分类 y 轴值更改为希腊字符,但我无法理解。

library(tidyverse)
df = data.frame(y = c('a', 'b', 'c', 'd'), 
                xmin = rep(-2, 4), 
                x = rep(0, 4), 
                xmax = rep(2, 4))

df %>% ggplot(aes(y = y, x = x, xmin = xmin, xmax = xmax)) +
              geom_pointrange(show.legend = F) 

我想将 'd' 轴刻度标签绘制为 δ15D 并保留其他 3 个 y 值。

我试过使用 expression 将 'd' 更改为希腊文字

names <- df %>% pull(y)%>% recode( "d" = 'expression(delta^15~D)' )

df %>% ggplot(aes(y = y, x = x, xmin = xmin, xmax = xmax)) +
              geom_pointrange(show.legend = F) +
              scale_y_discrete(labels = names)

但是那只是打印了 'expression(delta^15~D)'

这也不行

names <- df %>% pull(y)%>% recode( "d" = paste0('expression(delta^15~D)') )

df %>% ggplot(aes(y = y, x = x, xmin = xmin, xmax = xmax)) +
              geom_pointrange(show.legend = F) +
              scale_y_discrete(labels = names)

您可以在 scale_y_discrete 中使用 expression。从那里,仅为“d”指定 expression

library(ggplot2)
df = data.frame(y = c('a', 'b', 'c', 'd'), 
                xmin = rep(-2, 4), 
                x = rep(0, 4), 
                xmax = rep(2, 4))

ggplot(df, aes(y = y, x = x, xmin = xmin, xmax = xmax)) +
  geom_pointrange(show.legend = F) + 
  scale_y_discrete(labels = c("d" = expression(delta^15~D)))

reprex package (v2.0.1)

于 2022-06-04 创建