2012-11-19 39 views
4

我试图在一个面板上创建多个图形。我希望在意大利面条的两边都有盒子情节。多面板图:箱形图和spagetti图

这是我的代码示例:

par(mfrow=c(1,3)) 

boxplot(h~y,dat, 
xlab="Y", 
ylab="Incidence 1 (percent)", 
main="H", 
scales=list(x=list(at=c(1,2)))) 

xyplot(H~Yr,groups=Subject,type="b",data=data, 
ylab="Incidence (percent)", 
xlab="Year", 
main="Incidence", 
scales=list(x=list(at=c(1,2)))) 

boxplot(h1~y1,dat1, 
xlab="Y", 
ylab="Incidence 2 (percent)", 
main="R", 
scales=list(x=list(at=c(1,2)))) 

当我绘制我的第一个框情节事情看起来OK(还有空的空间准备填充),但一旦意大利面条情节加入,整个图形是意大利面图(箱形图被删除)。

有没有办法在一个面板上完成多个但不同类型的图形?

+0

我知道'xyplot'有一个可选的'layout'参数,尽管恐怕我从来没有打扰过使用它。 –

+0

看看'gridExtra'和'grid.arrange' – mnel

+2

在您搜索r-help档案时,您应该包含术语晶格和基础图形。他们有不同的coordiante系统,所以混合它们相当棘手。您可能想看看Paul Murrell的'gridBase'软件包。 –

回答

1

由于@DWin和@mnel指出,你有麻烦,因为你试图混合基地图形(boxplot())和电网基于图形(xyplot())。要在一个图中获得两个箱形图和意大利面条图,您有三个主要选项。前两个会比第三要容易得多:

  1. 只使用图形的基础(这里boxplot()plot(, type="b")),与par(mfrow=c(1,3)一个单一的数字排列它们。
  2. 使用只是电网基于图形(这里的功能bwplot()xyplot(, type="b")),从gridExtragrid.arrange()一个单一的数字排列它们。
  3. 使用基于网格的基于图形的图形(就像您现在要做的那样),将它们合并到一个图中,其中包含来自gridBase包的函数。

唯一要选项3可以说是追求它会教你很多关于基地和电网图形系统两者的低级实现!