【发布时间】:2018-09-10 21:16:26
【问题描述】:
考虑这个funny 示例
mydata <- data_frame(group = c('a', 'a', 'a', 'b', 'b', 'b'),
x = c(1,2,3,5,6,7),
y = c(3,5,6,4,3,2))
> mydata
# A tibble: 6 x 3
group x y
<chr> <dbl> <dbl>
1 a 1 3
2 a 2 5
3 a 3 6
4 b 5 4
5 b 6 3
6 b 7 2
在这里,我可以按组nest(),并将基于组的ggplot 存储到list-column 中。疯狂的事情。
> mydata %>% group_by(group) %>%
+ nest() %>%
+ mutate(myplot = map(data, ~ggplot(data = .x, aes(x = x, y = x)) + geom_point()))
# A tibble: 2 x 3
group data myplot
<chr> <list> <list>
1 a <tibble [3 x 2]> <S3: gg>
2 b <tibble [3 x 2]> <S3: gg>
但是,我想使用map 将这些图表中的每一个打印到一个pdf 中。也就是说,每组一个pdf 页面。
在这里,我不知所措。我怎样才能做到这一点? 谢谢!
【问题讨论】:
-
您能否详细说明为什么需要为此使用
map()/walk()?您是否试图避免存储图的中间步骤?如果我想将列表中的所有绘图保存到单个 pdf 中,我通常使用pdf(),其中的工作流程是使用pdf()初始化文件,传递列表(如mydata$myplots),然后传递@987654337 @。我有一个例子here -
@aosmith 除非您处于交互模式,否则您仍然需要打印调用吗?
-
@Moody_Mudskipper 是的,当您不以交互方式使用
pdf()时,您需要显式地print(),例如在函数中使用pdf()。 Here's one example. -
您好,您的链接非常酷!本质上这是一个程序的一部分,它会在某个时候溢出 ggplots 的 pdf