【发布时间】:2017-09-23 19:28:46
【问题描述】:
我正在尝试使用 multiplot 函数 (http://www.cookbook-r.com/Graphs/Multiple_graphs_on_one_page_(ggplot2)/) 在一张图中排列多个图。以下示例取自 http://rstudio-pubs-static.s3.amazonaws.com/2852_379274d7c5734f979e106dcf019ec46c.html,运行良好:
plots <- list() # new empty list
for (i in 1:6) {
p1 = qplot(1:10, rnorm(10), main = i)
plots[[i]] <- p1 # add each plot into plot list
}
multiplot(plotlist = plots, cols = 3)
但是,我的代码没有:
dataset <- data.frame(x=c(1,2,3,4,5,6), y1=c(1,4,6,8,10,12), y2=rnorm(6))
plots <- list()
for (i in 1:2){
plots[[i]] <- ggplot(dataset) + geom_point(aes(x=dataset[,1], y=dataset[,i+1]))
}
multiplot(plotlist = plots, cols=2)
不知何故,它与绘图对象如何分配给列表有关,当我这样做时
a <- ggplot(dataset) + geom_point(aes(x=dataset[1], y=dataset[2]))
b <- ggplot(dataset) + geom_point(aes(x=dataset[1], y=dataset[3]))
multiplot(a,b)
一切都按预期进行。 multiplot(plotlist=list(a,b)) 也可以正常工作。
我不知道相关的差异是什么。任何人都可以帮忙吗?
非常感谢,
恩诺
【问题讨论】: