在R中使用ggplot绘制列表中的多个项目

cld4siwp  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(121)

我有一个结构相同的 Dataframe 列表,我想使用ggplot将所有这些 Dataframe 的信息绘制在R中的同一个图上,就像使用facet_wrap在一张图像上显示多个面板一样,但我遇到了麻烦。下面我创建了一个可重现的示例。

library(ggplot)

#Designating 3 datasets:

data_1 <- mtcars
data_2 <- mtcars
data_3 <- mtcars

#Making them into a list:

mylist <- list(data_1, data_2, data_3)

#What things should look like, with facet_wrap being by "dataset", and thus a panel for each of the
#three datasets presented. 

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + geom_point() + facet_wrap(~Species)

但是,当我运行下面的代码时,我得到一个错误,指出数据必须以 Dataframe 的形式呈现,而不是列表:

ggplot(mylist, aes(x = cyl, y = mpg)) + geom_point() + facet_wrap(~.x)

有人知道使用ggplot从这样的列表中绘图的最佳方法吗?你必须在lapply()中 Package ggplot吗?

t30tvxxf

t30tvxxf1#

一个选项是使用dplyr::bind_rows等命令按行绑定 Dataframe :

library(ggplot2)

data_1 <- mtcars
data_2 <- mtcars
data_3 <- mtcars

mylist <- list(data_1, data_2, data_3) |> 
  dplyr::bind_rows(.id = "id")

ggplot(mylist, aes(x = cyl, y = mpg)) + geom_point() + facet_wrap(~id)

相关问题