相关疑难解决方法(0)

如何使用grid.arrange安排任意数量的ggplots?

这是在ggplot2 google群组上交叉发布的

我的情况是我正在处理一个输出任意数量的图形的函数(取决于用户提供的输入数据).该函数返回一个n个图的列表,我想将这些图以2 x 2的形式排列.我正在努力解决以下问题:

  1. 如何允许灵活地交给任意(n)个数量的图?
  2. 我怎么能指定我希望它们布局为2 x 2

我目前的策略是grid.arrangegridExtra包中使用.它可能不是最佳的,特别是因为,这是关键,它完全不起作用.这是我评论的示例代码,试验了三个图:

library(ggplot2)
library(gridExtra)

x <- qplot(mpg, disp, data = mtcars)
y <- qplot(hp, wt, data = mtcars)
z <- qplot(qsec, wt, data = mtcars)

# A normal, plain-jane call to grid.arrange is fine for displaying all my plots
grid.arrange(x, y, z)

# But, for my purposes, I need a 2 x 2 layout. So the command below works acceptably.
grid.arrange(x, y, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

93
推荐指数
2
解决办法
3万
查看次数

使用lapply的情节列表

我最近一直在使用lapply和sapply作为我的首选功能.到目前为止这么好,但为什么下面的代码不起作用让我感到困惑.

df<-as.data.frame(matrix(rnorm(50),ncol=5))
names(df)<-c("x1","x2","x3","x4","x5")
df1<-seq_len(10)

ll<-lapply(seq(1,5), function(i) qplot(df1,df[,i]))
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Error in `[.data.frame`(df, , i) : undefined columns selected
Run Code Online (Sandbox Code Playgroud)

好吧,显然我在可重现的代码中犯了一个很不幸的错误.它现在有效,但ll列表中的所有图都是相同的图.当我运行这个:

do.call(grid.arrange,ll)

我得到以下图像:

格

所有的情节都是一样的!这也是我通过数据运行时获得的输出.

r ggplot2 lapply

4
推荐指数
2
解决办法
8659
查看次数

标签 统计

ggplot2 ×2

r ×2

lapply ×1