创建包含多个部分的文档,每个部分包含一个图

时间:2019-06-28 12:35:26

标签: r loops ggplot2 markdown r-markdown

我有这个数据框

sales <-
  data.frame(
    "month" = c("2018-01-01", "2018-01-01", "2018-02-01", "2018-02-01"), 
    "type" = c("us", "rest", "us", "rest"),
    "net_inc" = c(500, 600, 800, 900),
    stringsAsFactors = F
    )

我从这些数据中甚至创建了一些图形

ggplot(sales, aes(x=month, y=type, fill=type)) +
  geom_bar(stat = "identity", position = "dodge")

但是现在我想为每个月准备带有单独图形的降价文档,除了每月手动过滤然后从此过滤后的数据创建图形之外,我不知道如何做。

所以我的问题是如何从销售数据框中实现以下目标:

  1. 在降价(## 2018-01)中有子标题
  2. 在我的DF中为每个月创建图(请注意,在我的数据框中,数据从2000年开始到当前日期)

1 个答案:

答案 0 :(得分:0)

我将对您提供的示例和目标进行以下操作。首先,我们为每个月作图:

plotlist <- split(sales, sales$month)
plotlist <- lapply(plotlist, function(df){
  ggplot(df, aes(x = month, y = type, fill = type)) +
    geom_col(position = "dodge")
})

然后制作标题和大块,在其中打印打印列表的每个元素:

## Month 1

```{r}
print(plotlist[[1]])
```

## Month 2

```{r}
print(plotlist[[2]])
```

我不知道以任何方式以编程方式构造Markdown文档(这并不意味着它不存在),所以到目前为止我只能为您提供帮助。

或者,如果您不介意输出,则可以执行以下操作:

```{r}
print(plotlist)
```

将在输出文件中这样打印:

enter image description here

并且仍然将您的绘图与月份信息保持在一起。