为了快速找到我的数据的位置,我显示了一个表格,其中包含我的变量名称以及每个变量的信息。
由于我有很多列(变量),我将其中的块复制并粘贴到一个单元格中,以便将它们全部显示在一个屏幕上。
我想对此进行编码,以便我可以输入几个要提取的行范围,并在适合屏幕区域的网格上有效地显示一些如何?我还没有很好地显示 2 个网格。
如果我上面没有正确表达我的问题,这里有一个简单的例子:
如果 laList
的输出是我们必须处理的,我如何将蓝色部分移到粉红色部分的一侧?
co1 = Range[6];
co2 = Range[11, 16];
co3 = {"A", "B", "C", "D", "E", "F"};
laList = Join[{co1}, {co2}, {co3}] // Transpose;
laListGraph = Grid[laList,
Dividers -> All,
Alignment -> {Left, Center},
ItemSize -> Automatic,
ItemStyle -> Directive[FontSize -> 14, Black, Italic, Bold],
Spacings -> {2, 1},
Background -> {None, None, {
{{1, 3}, {1, 3}} -> LightRed,
{{4, 6}, {1, 3}} -> LightBlue
} } ]
最佳答案
这是我将如何做到的。从问题中定义的 laList
开始:
laList2 = ArrayFlatten @ {Partition[laList, 3]};
Grid[laList2,
Dividers -> All,
Alignment -> {Left, Center},
ItemSize -> Automatic,
ItemStyle -> Directive[FontSize -> 14, Black, Italic, Bold],
Spacings -> {2, 1},
Background -> {None, None, {
{{1, 3}, {1, 3}} -> LightRed,
{{1, 3}, {4, 6}} -> LightBlue
} }
]
请注意:
3
中的 Partition
值需要根据您的列表进行调整。 LightBlue
区域的区域规范被颠倒了。 我喜欢的 yoda 代码的一个变体是:
subgrid= Grid[#1,
Dividers -> All,
Alignment -> {Left, Center},
ItemSize -> Automatic,
ItemStyle -> Directive[FontSize -> 14, Black, Italic, Bold],
Spacings -> {2, 1},
Background-> #2] &;
MapThread[subgrid, {Partition[laList, 3], {LightRed, LightBlue}}] //Row
此外,使用此方法,您可以对不均匀划分的列表进行分区:
MapThread[subgrid, {
Partition[laList, 4, 4, 1, {}],
{LightRed, LightBlue}
}] //Row
关于graphics - 在 Mathematica 中排列和显示部分网格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6133617/