首页 > 解决方案 > 在 ggplot 中使用分面图标题进行标签解析

问题描述

我正在尝试将带有一些数学符号的字符变量传递给 ggplot facet,以便各个图的标题可以用适当的数学符号很好地显示。有没有一种很好的方法可以让下面的代码工作?

library(tidyverse)

plot_data <- mpg %>% 
  mutate(fvar=case_when(
    drv=="f" ~ "X >=10", 
    drv=="4" ~ "0<X<=1", 
    drv=="r" ~ "1<X<10"
  ))

ggplot(plot_data, aes(x=displ, y=cty)) + 
  geom_point() + 
  facet_wrap(~ fvar, labeller=label_parsed)

标签: rggplot2

解决方案


这可以通过使用不可见的分组来实现{}(参见参考资料?plotmath)。

使用{}我们可以将表达式 like0 < X <= 1转换为“有效”的 R like 表达式{0 < X} <= 1,可以通过以下方式计算label_parsed

library(tidyverse)

plot_data <- mpg %>% 
  mutate(fvar=case_when(
    drv=="f" ~ "X >=10", 
    drv=="4" ~ "{0<X}<=1", 
    drv=="r" ~ "{1<X}<10"
  ))

ggplot(plot_data, aes(x=displ, y=cty)) + 
  geom_point() + 
  facet_wrap(~ fvar, labeller = label_parsed)


推荐阅读