微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Mathematica中操作自定义表格表示形式

如何解决在Mathematica中操作自定义表格表示形式

| 考虑以下数据示例:
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},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],Length@data[[All,1]] - 1,1]]
Dynamic[DataSampleX[data,linesNumber,range1,range2,LightBlue,LightGray,LightYellow]]
如何使用setter更新颜色值? 是否可以在“操纵”窗口中实际使用它? 欢迎提出任何其他建议,以使这种高效外观更好。 编辑:由于下面的Belisarius解决方案,我现在能做的事情:     

解决方法

        尝试类似的东西:
colsel = (#->Graphics[{#,Disk[]},ImageSize -> 15])& /@ColorData[1,\"ColorList\"];
s[x_] := Style[x,Black,Bold,12];
ct = ControlType -> PopupMenu;

Manipulate[
 DataSampleX[data,linesNumber,range1,range2,color1,color2,color3],Row[{
   Column[{
    Control@{{range1,1,s@\"Range1\"},Range[1,Length@data[[1]] - 1],ct},Control@{{range2,2,s@\"Range2\"},Range[2,Control@{{linesNumber,s@\"Lines\"},Length@data[[All,1]]-1],ct}}],Spacer[20],Column[{
     Control@{{color1,colsel[[1,1]],s@\"Color 1\"},colsel,Control@{{color2,colsel[[2,s@\"Color 2\"},Control@{{color3,colsel[[3,s@\"Color 3\"},ct}}]
 }]]
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。