在自定义布局中排列R图

时间:2015-10-22 18:21:21

标签: r

我想将R中的五个图组合成以下结构:

enter image description here

我可以使用par(mfrow = c(2,3)),但是,在这种情况下,底部的2个图(第2行)是左对齐的。如何在中心移动这些?或者,如果我使用布局和矩阵,那么适当的维度应该是什么?太提一下,所有的地块都有相同的宽度。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

一种选择是使用<Window ... xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" xmlns:my="clr-namespace:MyNamespace" ...> <Window.Resources> <Window.Resources> <my:myObservableCollection x:Key="myObservableCollection" /> </Window.Resources> ... <dxg:LookUpEdit AutoPopulateColumns="False" ItemsSource="{Binding Path=Data, Source={StaticResource myObservableCollection}}" ValueMember="Id" DisplayMember="Id"> <dxg:LookUpEdit.PopupContentTemplate> <ControlTemplate> <dxg:GridControl Name="PART_GridControl"> <dxg:GridControl.Columns > <dxg:GridColumn Header="First name" FieldName="FirstName" VisibleIndex="0"/> <dxg:GridColumn Header="Last name" FieldName="LastName" VisibleIndex="1" /> </dxg:GridControl.Columns> </dxg:GridControl> </ControlTemplate> </dxg:LookUpEdit.PopupContentTemplate> </dxg:LookUpEdit> 。为此,您需要通过创建一个矩阵来创建绘图布局,该矩阵包含您想要的位置中的绘图索引。为了达到您想要的效果,您需要分配比绘图更多的列以允许偏移。在下面显示的示例中,我假设绘图每个占据两列,因此底行的偏移量是宽度的一半:

layout()

这给出了

mat <- matrix(c(1,1,2,2,3,3,
                0,4,4,5,5,0), nrow = 2, byrow = TRUE)

> mat [,1] [,2] [,3] [,4] [,5] [,6] [1,] 1 1 2 2 3 3 [2,] 0 4 4 5 5 0 表示不会在该位置绘制情节。

使用0,您将其传递给mat,进行绘图,然后使用layout()进行重置。这是一个说明

的例子
layout(1)

产生:

enter image description here

如果你希望减少空白区域,你必须使用边距等,但至少这可以解决近端问题。得到你想要的布局。