考虑以下数据示例:
data ={
{"a", "b", "c", "d", "e"},
{1, 2, 3, 4, 5},
{11, 12, 13, 14, 15},
{21, 22, 23, 24, 25}
};
以及以下生成自定义表格表示的函数:
(你可以参考Mr.Wizard 广泛的可定制表格表示的解决方案。最终我也会操纵他提供的选项,现在)
DataSampleX[data_, linesNumber_, range1_, range2_, color1_, color2_, color3_] :=
Grid[
Join[
{Range[range1, range2]}, {Map[Rotate[Text[#], 90 Degree] &,
data[[1, range1 ;; range2]]]},
data[[2 ;; linesNumber, range1 ;; range2]]
],
Background -> {{{{color1, color2}}, {1 -> color3}}},
Dividers -> {All, {1 -> True, 2 -> True, 3 -> True,0 -> True}},
ItemSize -> {1 -> Automatic, Automatic},
Alignment -> Top,
Frame -> True,
FrameStyle -> Thickness[2],
ItemStyle -> {Automatic, Automatic,
{{1, 1}, {1, Length[data]}} ->Directive[FontSize ->
15, Black, Bold]}
];
我想使用 Manipulate 或 Dynamic 来显示我的部分数据。这选择了我要显示的列范围、要显示的行数以及颜色。
以下是我未完成的尝试。
PopupMenu[Dynamic[range1], Range[1, Length@data[[1]] - 1, 1]]
PopupMenu[Dynamic[range2], Range[2, Length@data[[1]], 1]]
PopupMenu[Dynamic[linesNumber], Range[2, Length@data[[All, 1]] - 1, 1]]
Dynamic[DataSampleX[data, linesNumber, range1, range2, LightBlue,
LightGray, LightYellow]]
如何使用 setter 更新颜色值?
是否可以在 Manipulate 窗口中实际使用它?
欢迎任何其他使这种高效看起来不错的建议。
-编辑:由于下面的 Belisarius 解决方案,我现在能够做的事情: