为了快速找到我的数据的位置,我显示了一个表格,其中包含我的变量名称以及每个变量的信息。

由于我有很多列(变量),我将其中的块复制并粘贴到一个单元格中,以便将它们全部显示在一个屏幕上。

我想对此进行编码,以便我可以输入几个要提取的行范围,并在适合屏幕区域的网格上有效地显示一些如何?我还没有很好地显示 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/

    10-14 13:41
    查看更多