使用ggplot2绘制子图中data.frame的所有列

时间:2017-11-30 10:20:16

标签: r plot ggplot2

正如标题所示,我想从我的data.frame中绘制所有列,但我想以通用方式进行。我的所有专栏都是因素。 到目前为止,这是我的代码:

nums <- sapply(train_dataset, is.factor) #Select factor columns
factor_columns <- train_dataset[ , nums]

plotList <- list()
for (i in c(1:NCOL(factor_columns))){
  name = names(factor_columns)[i]
  p <- ggplot(data = factor_columns) +  geom_bar(mapping = aes(x = name))
  plotList[[i]] <- p
}
multiplot(plotList, cols = 3)

多点函数来自此处:http://www.cookbook-r.com/Graphs/Multiple_graphs_on_one_page_(ggplot2)/

我的数据集来自Kaggle(房屋定价预测):https://www.kaggle.com/c/house-prices-advanced-regression-techniques

我从代码中获得的是下面的图片,它似乎是最后一列严重代表的。 Output

这将是最后一栏很好地代表: enter image description here

编辑: 使用gridExtra作为@LAP建议也没有给我一个好结果。我使用它而不是多时隙。

nCol <- floor(sqrt(length(plotList)))
do.call("grid.arrange", c(plotList, ncol=nCol))

但我得到的是: enter image description here 再一次,SaleCondition是印刷的唯一东西,并不是很好。 PD:我也尝试了牛皮画,结果相同。

1 个答案:

答案 0 :(得分:2)

使用tidyr,您可以执行以下操作:

compile' com.google.android.gms: play-services: 11.6.0