无法循环通过ggplot直方图

时间:2019-03-19 12:35:02

标签: r for-loop ggplot2

我试图遍历虹膜数据集的每一列,并在ggplot中绘制直方图。因此,我期望出现5种不同的直方图。但是,下面的我的for循环什么也不返回。我该如何解决?

library(ggplot2)

for (i in colnames(iris)){
  ggplot(iris, aes(x = i))+
    geom_histogram()
}

2 个答案:

答案 0 :(得分:2)

for / tidyverse不是使用ggplot循环,而是将数据从宽到长整形,然后使用facet_wrap

绘制
library(tidyverse)
iris %>%
    gather(key, val, -Species) %>%
    ggplot(aes(val)) +
    geom_histogram(bins = 30) +
    facet_wrap(~key, scales = "free_x")

enter image description here

答案 1 :(得分:1)

使用dplyrtidyrggplot

library(ggplot2)
library(dplyr)
library(tidyr)

iris %>% 
  gather(Mesure, Value, -Species) %>%
  ggplot(aes(x=Value)) + geom_histogram() + facet_grid(rows=vars(Species), cols=vars(Mesure))

结果: enter image description here