Mathematica网格中的多个背景子区域

时间:2011-05-25 12:42:05

标签: background grid wolfram-mathematica

我无法弄清楚如何定义具有不同颜色背景的多个子区域,如下所示。

任何想法?

非常感谢,

LA

Grid[Table["g", {4}, {7}],
Background -> {None, None, {{{1, 3}, {1, 3}} -> LightRed}}]

2 个答案:

答案 0 :(得分:7)

正如旁注,通常的要求是根据值指定背景颜色。

为此你可以这样做:

k = Table[RandomInteger[{1, 2}], {4}, {7}];
Grid[k,
 Background ->
  {None, None,
   Join[
    Position[k, 1] /. {x_, y_} -> ({x, y} -> LightRed), 
    Position[k, 2] /. {x_, y_} -> ({x, y} -> LightBlue)]
   }]

enter image description here

修改

如果您不知道先验的值范围,您可以尝试以下方法:

k = Table[RandomInteger[{1, 20}], {4}, {7}];
Grid[k,
 Frame -> All,
 ItemStyle -> Directive[FontSize -> 16], 
 Background ->
  {None, None, 
   Flatten@Array[List[##] ->
                   ColorData["Rainbow"][(k[[##]] - Min@k) / Max@k] &, 
           Dimensions@k]
  }  
]

enter image description here

答案 1 :(得分:6)

只需列出您已拥有第一个区域和颜色的区域和颜色:

Grid[Table["g", {4}, {7}], 
 Background -> {None, None, {
    {{1, 3}, {1, 3}} -> LightRed,
    {{3, 4}, {4, 7}} -> LightBlue
  } } ]

enter image description here