r语言 - 为使用 map() 创建的 ggplot 添加标题



使用map函数为我在下面创建的每个ggplot添加标题的最简单方法是什么?我希望标题反映每个数据框的名称 - 即 4、6、8(柱面(。

谢谢:)

mtcars_split <- 
  mtcars %>%
  split(mtcars$cyl)
plots <-
  mtcars_split %>%
  map(~ ggplot(data=.,mapping = aes(y=mpg,x=wt)) + 
        geom_jitter() 
  # + ggtitle(....))
plots

map2names一起使用。

plots <- map2(
  mtcars_split,
  names(mtcars_split),
  ~ggplot(data = .x, mapping = aes(y = mpg, x = wt)) + 
    geom_jitter() +
    ggtitle(.y)
)

编辑:阿利斯泰尔指出这与imap相同

plots <- imap(
  mtcars_split,
  ~ggplot(data = .x, mapping = aes(y = mpg, x = wt)) + 
    geom_jitter() +
    ggtitle(.y)
)

也许你会有兴趣改用facet_wrap

ggplot(mtcars, aes(y=mpg, x=wt)) + geom_jitter() + facet_wrap(~cyl)

您可以使用purrr::map2()

mtcars_split <- mtcars %>% split(mtcars$cyl)
plots <- map2(mtcars_split, titles, 
  ~ ggplot(data=.x, aes(mpg,wt)) + geom_jitter() + ggtitle(.y)
)

编辑

对不起,保罗回答重复了。

最新更新