0

我已经固定了所有参数来描述一个绘图,包括oma, mar, mgp, ... 我想将绘图区域划分为几个单独的、大小完全相同的较小绘图区域,它们共享 x 和 y 标签。例如这样的:

三地合一

我找到了组合绘图但使用单独轴的解决方案。这里有问题的起点吗?

4

2 回答 2

2

您可以将外部边距设置为足够大以容纳轴和标签,然后将常规边距设置为 0。使用par(mfrowlayout将内部区域拆分为所需的面板,然后在没有轴和标签的情况下进行绘图并添加轴和标签到外边距:

par( oma=c(5,4,4,1)+0.1, mar=c(0,0,0,0) )
layout( matrix( 1:3, nrow=1 ) )
for( i in levels(iris$Species) ) {
    with( iris[ iris$Species==i, ], {
        plot(Sepal.Width, Sepal.Length, ann=FALSE, xaxt='n', yaxt='n',
            ylim=range(iris$Sepal.Length))
        axis(1, outer=TRUE)
        mtext(side=3, i ) }
    )
}
axis(2, outer=TRUE)

但使用 lattice 或 ggplot2 可能更简单。

于 2012-06-18T19:12:41.337 回答
0

我建议使用 ggplot2 看看是否有满足您需求的解决方案。我发现您链接的情节在视觉上令人困惑。

于 2012-06-18T13:23:31.883 回答