2012-06-18 51 views
0

我已将所有参数固定为描述一个绘图,其中包括oma,mar,mgp ......我想将绘图区划分为几个单独的,大小完全相同的小绘图共享x和y标签的区域。例如这样的事情:将几个图绘制到一个绘图的空间中

Three plots in one

我找到解决方案,以图结合但单独的轴。这里的问题的任何出发点?

回答

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) 

但它使用点阵或GGPLOT2可能是简单的。

+0

谢谢!这样我就拥有了基本R图的风格。我使用了''mfrow'',对于我来说设置''cex = 1.''非常重要,这样所有的距离都符合我的默认设置。 – sebschub

0

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

+0

我非常想使用R标准图形系统,因为我已经将其用于一切。在真实情节中,三条线在每个小区中都非常接近。看到它们属于一起是相对容易的。 (原始的情节来自我的出版物,我不得不改变这里使用。) – sebschub

+0

看着ggplot2,facit网格似乎是我想要的。但是,ggplot2样式似乎与普通的R样式完全不同。 – sebschub

+0

风格是可定制的,但我认为很多人发现ggplot2默认很吸引人。 – seandavi

相关问题