我试图想出一个简洁的方法来绘制R数据框中所有列的网格视图。问题是我的数据框中包含离散值和数值。为简单起见,我们可以使用R提供的名为par(mfrow(x, y))
的样本数据集。我会使用mapply
来分割我的情节,也可能使用ggplot(iris, aes(Sepal.Length))+geom_density()
来循环显示每一列?我不确定这里最好的是什么。
我正在思考类似于:
Insert into `web`.`users` (username,registered_time )
values (`nick`, '2018-01-29
Alias Insert into tablename (col1, col2, ...)
values (val1, va2,...)
但是为每列绘制。我关心的是"物种"列是离散的。也许" geom_density"在这里使用不是正确的情节,但想法是在一个图中看到每个数据框的变量分布 - 甚至是离散的。离散值的条形图将用于此目的。基本上我试图做以下事情:
任何想法或建议都将不胜感激!
答案 0 :(得分:2)
您可以使用__dict__
包中的plot_grid
功能。此函数获取由cowplot
生成的图表列表,并创建一个新图表,将它们组合在一个网格中。
首先,使用ggplot
创建一个图表列表,使用lapply
表示数字变量,使用geom_density
表示其他所有图表。
geom_bar
现在我们只需拨打my_plots <- lapply(names(iris), function(var_x){
p <-
ggplot(iris) +
aes_string(var_x)
if(is.numeric(iris[[var_x]])) {
p <- p + geom_density()
} else {
p <- p + geom_bar()
}
})
。
plot_grid