4

我正在尝试在一个面板上创建多个图表。我希望在意大利面条情节的两侧都有一个箱形图。

这是我的代码示例:

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))))

当我绘制我的第一个箱形图时,看起来一切正常(仍有空白空间可以填充),但是一旦添加意大利面条图,整个图表就是意大利面条图(箱线图被删除)。

有没有办法在一个面板上制作多种但不同类型的图表?

4

1 回答 1

1

正如@DWin 和@mnel 指出的那样,您遇到了麻烦,因为您试图混合基本图形(boxplot())和基于网格的图形(xyplot())。要在一个图中获得两个箱线图和一个意大利面条图,您有三个主要选项。前两个将比第三个容易得多:

  1. 仅使用基本图形(此处boxplot()plot( , type="b")),将它们排列在单个图形中par(mfrow=c(1,3)
  2. 仅使用基于网格的图形(此处为lattice函数bwplot()和),使用gridExtraxyplot( , type="b")将它们排列在单个图形中。grid.arrange()
  3. 混合使用 base 和基于网格的图形(就像您现在尝试做的那样),将它们与gridBase包中的函数组合在一个图形中。

对于选项 3,唯一要说的是,追求它会教你很多关于基本图形系统和网格图形系统的低级实现的知识!

于 2012-11-19T06:05:10.610 回答