How to| 在表格中添加标题
Wolfram 语言为表格中标题的显示与样式化提供了极大的灵活性. 您可以使用 Prepend 或 ArrayFlatten 为行与列添加标题,然后联合使用 Grid 与任意样式化元素,将它们显示在表格中.
Wolfram 语言允许您对表格中数据的显示进行控制与自定义. 标题正如表格中任何其它元素一样.
m = Table[i ^ 2 - j ^ 3, {i, 3}, {j, 4}]TableOfValues1 = Prepend[m, {"First", "Second", "Third", "Fourth"}]用 Grid 显示带有列标题的数据:
Grid[TableOfValues1]用 MapThread 为各行追加标题:
TableOfValues2 = MapThread[Prepend, {TableOfValues1, {"", "1st", "2nd", "3rd"}}]联用 Grid 与 Frame,显示带有行标题与列标题的数据:
Grid[TableOfValues2, Frame -> All]n = Table[Graphics[Circle[], AspectRatio -> RandomReal[]], {3}, {5}];用 GraphicsGrid 在一个网格中显示圆环:
GraphicsGrid[n, Frame -> All]headings = Style[#, {Orange, Bold, 12}]& /@ {"One", "Two", "Three", "Four", "Five"}TableOfCircles = Prepend[n, headings];用 GraphicsGrid 查看样式化的表格:
GraphicsGrid[TableOfCircles, Frame -> All]agdata1 = {{clay, seedB, 175}, {silty, seedB, 180}, {clay, seedB, 165}, {sandy, seedA, 168}, {clay, seedA, 184}, {sandy, seedB, 171}, {sandy, seedB, 173}, {sandy, seedA, 189}, {clay, seedA, 186}, {silty, seedB, 174}, {clay, seedA, 192}, {clay, seedA, 184}, {clay, seedA, 179}, {sandy, seedA, 182}, {sandy, seedB, 177}, {silty, seedA, 180}, {clay, seedB, 175}, {silty, seedB, 181}, {sandy, seedA, 176}, {silty, seedB, 190}};将 First 用在 GatherBy 中,根据各个数据点的第一个元素对数据归类,可以将数据按土壤类型分组:
GatherBy[agdata1, First]如要准备数据用于在表格中显示,在第一层使用 Flatten,此处生成一个三元素列表. 符号 % 指定最新的输出,此处为分组后的数据:
agdata2 = Flatten[%, 1]使用 Length 对每种土壤类型的观察数进行计数:
Length /@ GatherBy[agdata1, First]使用 Range 生成一个列表,列表各元素分别由从1开始、各土壤类型的观察数作为结束的连续整数组成:
Range[%]将上面的数值用作行标题,可以用 Flatten 将它们压缩到一个列表中:
rowHeadings1 = Flatten[%]为土壤类型、种子类型以及产量数据创建列标题. 现在不必给观察数创建列标题,这将在下一步做:
colHeadings1 = {"Soil Type", "Seed Type", "Yield"};使用 ArrayFlatten 在数据中添加观察数以及列标题 "Observation":
agdata3 = ArrayFlatten[{{{{"Observation"}}, {colHeadings1}}, {List /@ rowHeadings1, agdata2}}]用 Grid 将数据显示在表格中:
Grid[agdata3]使用 Grid 中的一些可用选项为表格添加样式:
Grid[agdata3, ItemStyle -> {Automatic, {1 -> {Bold, 14}}}, Frame -> {All, 1 -> True}, Background -> {None, {{LightOrange, LightGray}}}]关于格式化和样式化的更多范例,请参见 How to: 格式化数据表格 以及 "网格、行和列".
您也可以利用 TableForm 创建表格并给它们添加标题.
d = {{5, 7}, {4, 2}, {10, 3}};rowHeadings2 = {"Group A", "Group B", "Group C"};
colHeadings2 = {"y1", "y2"};使用 TableForm 创建一个表格, 然后使用 TableHeadings 选项添加标题:
TableForm[d, TableHeadings -> {rowHeadings2, colHeadings2}]