表と行列
表と行列の表示形を使ったリスト要素の出力書式の設定
| Out[1]= |  |
|
| Out[2]= |  |
|
Out[3]//TableForm= |
| |  |
|
Gridと
Columnは評価しないラッパーであるが,内容を適切な形式にタイプセットする.これらはタイプセットするコンストラクトであり,フロントエンドでの正確な描画を必要とする.
| Out[4]= |  |
|
Out[5]//FullForm= |
| |  |
|
これらのラッパーはすべて,グラフィカルなデータを含むどのような種類のデータをあらわすためにも使用できる.
| Out[6]= |  |
|
数の右揃え表型表示
| Out[7]= |  |
|
| Out[8]= |  |
|
桁数が小さすぎるときは数値手前にスペースをあてがうことで表示桁長を20桁にし,右揃えの列表示をする.
Out[9]//PaddedForm= |
| |  |
|
| Out[10]= |  |
|
Out[11]//PaddedForm= |
| |  |
|
Gridで伸張を表すために使われるシンボル
Gridは,第1引数に矩形行列を取る.
Gridの各々の要素は伸張する領域を指定することにより,複数の行・列,または矩形の部分格子に渡り伸張することができる.伸張要素は常に伸張領域の左上隅で指定され,残りの領域は適切な伸張記号で埋められる.
| Out[12]= |  |
|
| Out[13]= |  |
|
| Out[14]= |  |
|
Grid全体の動作に影響を及ぼすオプションの例
| Out[15]= |  |
|
| Out[16]= |  |
|
| Out[17]= |  |
|
| Out[18]= |  |
|
| Out[19]= |  |
|
以下は Grid全体のベーススタイルをSubsectionスタイルに設定する.
| Out[20]= |  |
|
Columnは1列の
Gridを指定することに等しい.この2つの関数は類似しているので,どちらにも同じオプションが使える.
| Out[21]= |  |
|
Gridの列と行に影響するオプションの例
個々の行および列に影響を及ぼす
Gridのオプションはすべて同様なシンタックスを持つ.オプションは
{x, y}として指定することができる.ここで
x は列すべてに適用され,
y はすべての行適用される.また,
x と
y は単独の値,あるいは各列または行を交代で表す値のリストである.
Alignment設定がない場合,要素は水平方向では中心に,垂直方向ではベースラインに揃う.
| Out[22]= |  |
|
以下で,列の水平方向の整列を右に揃えるよう変更する.
| Out[23]= |  |
|
| Out[24]= |  |
|
Backgroundあるいは
ItemStyleオプションが,行と列について異なる設定を指定する場合,フロントエンドは行と列がオーバーラップする設定を組み合わせる.
以下は緑の行がどのようにさまざまな色と組み合わされるかを示している.
| Out[25]= |  |
|
以下の例は,行と列の両方で指定されたスタイルを ItemStyleがどのように組み合わせることができるかを示している.
| Out[26]= |  |
|
複数の行や列に渡って個々の行と列の指定を繰り返したい場合は,リストでラップするとよい.繰り返される要素は,必要なだけ使われる.リストに複数の要素をラップする場合,全体のリストが順に繰り返される.
| Out[27]= |  |
|
| Out[28]= |  |
|
ItemSizeと
Spacingsの両オプションは,水平方向はemで,垂直方向は現行のフォントに基づく線の高さで測定する.また,どちらのオプションも
Scaled座標を取ることができる.これは,座標が合計のセルの幅あるいはウィンドウの高さを指定するものである.
ItemSizeオプションでは,キーワード
Fullを使うことにより,指定された行または列の要素すべてにフィットするのに必要なスペースを要求することができる.
すべての項目の幅を3emに,高さを1ラインハイトにする.
| Out[29]= |  |
|
フォントの大きさを変更すると,異なる大きさで表示される.
| Out[30]= |  |
|
以下の例のボタンは,常にセルの幅の4分の1の大きさになる.
| Out[31]= |  |
|
| Out[32]= |  |
|
Itemのオプションの例
行および列全体に適用することのできる設定の多くは,
Itemラッパーを使って
Gridまたは
Columnの要素に個別に適用することもできる.
Itemを使うと,1つの項目ごとにこれらの設定を変更することができる.
Itemレベルで指定された設定は,常に
Gridあるいは
Columnからの全体としての設定をオーバーライドする.
以下で左下の要素に対する項目特定のオプションを設定する.
| Out[33]= |  |
|
| Out[34]= |  |
|
Itemのオプションの多くは,それに対する
Gridでの設定と同じ設定を取る.しかし,
Gridにおいて複雑な行および列を許可するオプションの
Alignmentおよび
ItemSizeは
Itemの
{horizontal, vertical}設定だけしか取らない.
次で,項目の領域をより大きくし,テキストの整列方法を指定する.
| Out[35]= |  |
|
| Out[36]= |  |
|
ここで ItemSizeは,最小の高さを2行分と指定しているが,項目はそれより大きい.
| Out[37]= |  |
|
高次元データのフォーマット
Columnは1次元データを,
Gridは2次元データをサポートする.任意次元の配列を出力するためには,
TableFormを使うことができる.
要素 a[i, j]の2×2の配列を均等間隔で表示する.
Out[39]//TableForm= |
| |  |
|
Out[40]//TableForm= |
| |  |
|
Out[41]//TableForm= |
| |  |
|
n 次元の表の表示において,通常,次に続く次元は入れ替りで列,そして,行に割り付けられる.
TableDirections->{dir1, dir2, ...}の設定条件を与えておけば(ここで,
diri は,
Columnか
Rowを指定する),数値を次元別に列方向,または,行方向に並べることが可能である.デフォルトでは,
{Column, Row, Column, Row, ...}と交互に並べられる.
Out[42]//TableForm= |
| |  |
|
TableFormは「不揃いな」配列を扱うことができる.要素が与えられていないときは空欄のままとなる.
Out[43]//TableForm= |
| |  |
|
Out[44]//TableForm= |
| |  |
|
オプション
TableDepthを使うと,
TableFormで表示するリストの最大ネストレベルを指定することができる.
TableFormで表示するが,第2レベル(2次元)以上は表示しないよう指定しておく.サブリスト {x, y}は表の単一の要素として扱われる.
Out[45]//TableForm= |
| |  |
|
| | |
| TableDepth | Infinity | 表に含む最大レベル数(次元数)を指定する |
| TableDirections | {Column,Row,Column,...} | 各レベル(次元)を行にするか列にするか指定する |
| TableAlignments | {Left,Bottom,Left,...} | 各レベルの入力要素をどの方向に寄せて並べるか指定する |
| TableSpacing | {1,3,0,1,0,...} | 要素と要素の間隔をスペース記号換算で指定する |
| TableHeadings | {None,None,...} | 各レベルに付けるラベルを指定する |
表形式の設定条件
表の要素配置
TableAlignmentsを設定することで,表の各入力要素を行や列の辺に合わせて並べることが可能になる.列合せの指定では,左,中央,右(
Left,
Center,
Right)を指定することができる.また,行合せでは,下,中央,上(
Bottom,
Center,
Top)を指定することができる.
TableAlignments->Centerと指定すれば,表の全要素が水平・垂直方向で中央に揃えることができる.デフォルトの揃え方に戻すには,
TableAlignments->Automaticにする.
Out[46]//TableForm= |
| |  |
|
Out[47]//TableForm= |
| |  |
|
表の要素間隔
TableSpacingを使うと隣接要素の水平・垂直間隔をスペース記号の単位で指定できる.0とすれば,間隔なしになる.
列と列の間をスペース記号6個分にし,行と行の間は間隔なしにする.
Out[48]//TableForm= |
| |  |
|
| None | ラベルを付けない |
| Automatic | 番号ラベルを付ける |
| {{lab11,lab12,...},...} | 任意のラベルを各レベルに付ける |
オプションTableHeadingsの設定
Out[49]//TableForm= |
| |  |
|
行には番号ラベルを付け,列には指定の文字列ラベルを付ける.
Out[50]//TableForm= |
| |  |
|
行にだけラベルを付ける.3番目のラベルに相当する行がないので, TableFormは自動的に空の行を挿入する.
Out[51]//TableForm= |
| |  |
|