首页 > 解决方案 > 使用管道在循环内生成图

问题描述

我想在循环内生成图。我需要像这样将数据参数传递给ggplot:

data <- data.frame(a = c(1,2,3), b = c(5,8,9))

data %>% ggplot(aes(x=a, y=b)) +
    geom_point()

当从循环内部生成绘图时,我们需要将 ggplot 传递给print(),但这在数据参数中管道时似乎效果不佳:

# This works
for(i in 1:2){
  (ggplot(data, aes(x=a, y=b)) +
    geom_point()) %>%
    print()
}

# This does not
for(i in 1:2){
  data %>%
  (ggplot(aes(x=a, y=b)) +
     geom_point()) %>%
    print()
}

有没有办法让管道与 ggplot 调用周围的括号配合得很好?

标签: rggplot2

解决方案


尝试data在括号中包括:

for(i in 1:2){
  (data %>%
  ggplot(aes(x=a, y=b)) +
     geom_point()) %>%
    print()
}

推荐阅读