我想将R中的五个图组合成以下结构:
我可以使用par(mfrow = c(2,3)),但是,在这种情况下,底部的2个图(第2行)是左对齐的。如何在中心移动这些?或者,如果我使用布局和矩阵,那么适当的维度应该是什么?太提一下,所有的地块都有相同的宽度。
非常感谢任何帮助。
答案 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)
产生:
如果你希望减少空白区域,你必须使用边距等,但至少这可以解决近端问题。得到你想要的布局。