【问题标题】:Use purrr:map with ggplot使用 purrr:map 和 ggplot
【发布时间】:2020-03-13 13:23:35
【问题描述】:

我没有太多使用purrr 包的经验。我有一个名为 data 的数据框,如下所示:

Country Year Incidence
USA     1995 20000
USA     2000 23000
UK      1995 16000
UK      2000 22000

这是保密的,我不能分享,所以这只是一小段摘录。我需要绘制一个图,其中年份在 x 轴上,发生率在 y 轴上,但是,我需要为每个国家/地区制作单独的图。不幸的是,刻面不是一个选项,我需要将每个图保存为单独的文件。

我知道如何拆分数据框,但是,我不知道如何在 map 函数中使用 ggplot。这是我尝试使用的代码,但无法正常工作。

data %>%
  group_by(Country) %>%
  group_split() %>%
  map(ggplot, aes(x = Year, y = Incidence)+
        geom_line()+
        geom_point())

编写此代码的正确方法是什么?

【问题讨论】:

  • 如果您只想将这些保存到硬盘而不是将它们添加到列表中,您可以使用 purr 中的 walk() 函数并将保存命令放入您的函数中。

标签: r ggplot2 purrr


【解决方案1】:

你可以使用:

library(tidyverse)

list_plot <- data %>%
               group_split(Country) %>%
               map(~ggplot(., aes(x = Year, y = Incidence) ) +
                       geom_line()+ geom_point())

您会在list_plot 中获得每一个Country 的地块列表,可以使用list_plot[[1]]list_plot[[2]] 等进行访问。

您是否考虑过在绘图中使用构面?

【讨论】:

  • 谢谢!这完美!你知道我在哪里可以找到关于~ 角色的更多信息,因为我不太明白它的作用。我最初的想法是使用构面,但是,有人告诉我,所有图都需要分开,以便它们可以包含在 PowerPoint 演示文稿中,每张幻灯片都显示一个国家/地区。
  • 我明白了,在这种情况下,这种方法似乎是正确的。 ~ 是应用函数的公式样式语法。它是匿名函数的替代方案。你可以在?map阅读它。
猜你喜欢
  • 2019-12-10
  • 2019-06-21
  • 1970-01-01
  • 1970-01-01
  • 2019-04-06
  • 2020-03-09
  • 2020-02-13
  • 1970-01-01
  • 2019-12-22
相关资源
最近更新 更多