给定两个 ggplots,我们可以将它们并排排列
library(ggplot2)
library(gridExtra)
# Data
data(iris)
df <- data.frame(y = rnorm(100))
# Plotting
p1 <- qplot(data=iris, Sepal.Width, Sepal.Length)
p2 <- ggplot(df, aes(x=1:100, y=y)) + geom_line()
grid.arrange(p1, p2, ncol=2)
如果其中一个地块是ggpair
object?
library(GGally)
p1 <- ggpairs(iris, colours='Species')
p2 <- ggplot(df, aes(x=1:100, y=y)) + geom_line()
grid.arrange(l, p2, ncol=6)
# Error in gList(list(list(data = list(Sepal.Length = c(5.1, 4.9, 4.7,
# 4.6, : only 'grobs' allowed in "gList"
首先编辑print.ggpairs
函数,这样它就不会调用grid.newpage
不再了。对于那个电话
library(GGally)
fixInNamespace("print.ggpairs", ns = "GGally")
并将第 32 行作为注释。然后你可以使用网格函数:
library(ggplot2)
data(iris)
df <- data.frame(y = rnorm(100))
p1 <- ggpairs(iris, colours='Species')
p2 <- ggplot(df, aes(x=1:100, y=y)) + geom_line()
library(grid)
grid.newpage()
pushViewport(viewport(layout=grid.layout(1,2)))
vp1 <- viewport(layout.pos.col=1,
layout.pos.row=1)
vp2 <- viewport(layout.pos.col=2,
layout.pos.row=1)
pushViewport(vp1)
p1
popViewport()
pushViewport(vp2)
plot(p2, vp = vp2)
popViewport()
Edit:我提交了一个功能请求,而 ggally 维护者添加了一个参数来关闭grid.newpage
,即,你可以做print(p1, gridNewPage = FALSE)
now: https://github.com/ggobi/ggally/issues/125 https://github.com/ggobi/ggally/issues/125
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)