gpt4 book ai didi

r - 绘制 R 数据框中所有列的分布

转载 作者:行者123 更新时间:2023-12-05 01:00:38 30 4
gpt4 key购买 nike

我试图想出一种简洁的方法来绘制 R 数据框中所有列的 GridView 。问题是我的数据框中既有离散值又有数值。为简单起见,我们可以使用 R 提供的名为 iris 的示例数据集。我会使用 par(mfrow(x, y)) 来分割我的图,也许使用 mapply 来循环遍历每一列?我不确定这里最好的是什么。

我在想类似的事情:

ggplot(iris, aes(Sepal.Length))+geom_density()

而是为每一列绘制。我担心的是“物种”列是离散的。也许“geom_density”在这里不适合使用,但我们的想法是在一个图中查看每个数据框的变量分布——甚至是离散的。离散值的条形图可以达到目的。基本上我正在尝试执行以下操作:

  • 循环浏览数据框中的每一列
  • 如果是数字,则绘制直方图
  • 如果是离散的(基本上是字符串),绘制条形图

任何想法或建议将不胜感激!

最佳答案

您可以使用 cowplot 包中的函数 plot_grid。此函数获取由 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

plot_grid(plotlist = my_plots)

关于r - 绘制 R 数据框中所有列的分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48507378/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com