グラフと集計

← 目次

TableSkim では、表計算ソフトやスクリプトを使わずに、見ている行をグラフにしたり、表に集計したりできます。このページでは、どの問いにどの機能を使うか、結果の読み方、グラフから元の行へのたどり方を、例を交えて説明します。例では、デモファイルの normal.csv(54 人分。先頭行は列名として判定されます)と large.parquet(1 万行)を使います。

問いに応じた機能の選び方

問い機能GUITUI
列にどんな値が、それぞれいくつあるかヒストグラムEdit → Histogram...B
数値(または日付)の 2 列に関係はあるか散布図、密度分布Edit → Scatter Plot...M
数値がグループによってどう違うか箱ひげ図Scatter Plot(X がテキスト)M
グループごとの行数、合計、平均はGroup ByEdit → Group By...A
1 つの列の最小・最大・平均は列の統計Edit → Column StatisticsS

どの機能も 現在の表示、つまりフィルタで残った行を対象にします。先に絞り込んでから(たとえばある 1 年に)、その行だけをグラフにしたり集計したりできます。フィルタを変えるとグラフも追従します。

1 つの列の分布:ヒストグラム

ヒストグラムは、列の値が各範囲(区間)にいくつ入るかを数えます。現在のセルを列に置いて Edit → Histogram...(Ctrl+Shift+H)を選びます。

large.parquet の Score 列のヒストグラム

読み方:

日付は日・月・年などの単位で数え、テキストの列は多い値から順に横棒で表示します。すべての操作は ヒストグラム、詳しい仕組みは 区間の決め方 を参照してください。

2 つの列の関係:散布図と密度分布

散布図は、ある列を横(X)、別の列を縦(Y)にとって、1 行を 1 つの点として描きます。Edit → Scatter Plot...(Ctrl+Shift+P)を選びます。先に 2 つの列を選択しておくとその列を描き(最初の列が X)、選択していなければ現在のセルの近くにある数値・日付の列を選びます。X と Y の一覧で変えられます。

Age と Salary の散布図と回帰直線

読み方:

行が多いと点が重なり合います。Show → Density にすると、代わりにマス目ごとに行を数え、少ない(暗い色)から多い(黄色)まで色分けします。

Value と Score の密度分布:1 万行

黄色の帯が、行の多い所です(Value にかかわらず得点 50 前後)。Log color scale をオンにすると、行の多いマスの隣でも数行しかないマスが見えるようになります。オフにすると数を線形に比べられます。

グループごとの違い:箱ひげ図

X が部署名などのテキストの列のときは、その値がそれぞれグループになって列を割り当てられ、グループごとの 箱ひげ図 を描きます。次の例は部署ごとの給与です。

Department ごとの Salary の箱ひげ図

箱の読み方:

中央値は Engineering が最も高く、散らばりは人事部が最も大きいことがわかります。1 人だけの部署(研究開発部)は線だけになります。グループは多い順に最大 30 個表示し、残りはまとめて (other) として描きます。

グループの値が 1,048,576 個を超えると、箱ひげ図の統計はその件数の一様なサンプルから推定します。表示する行数はグループ全体の件数のままで、箱の数値にはサンプル数と推定値であることを表示します。最小値・最大値・外れ値の件数もサンプルに基づきます。密度分布の件数は全行を数えます。点を保持する場合と密度分布だけを計算する場合で、箱ひげ図のサンプルは変わりません。

グループに違いがなければ、箱は同じように見えます。large.parquet の 5 つのカテゴリは同じ方法で生成したデータなので、このようになります。

Category ごとの Score の箱ひげ図:違いのない 5 グループ

Show → Density にすると、各グループのヒストグラムを色付きのマスの列として表示します。山が 2 つあるかどうかなど、箱よりも形が詳しくわかります。

Category ごとの Score の密度分布

表に集計する:Group By

グラフは傾向を示し、Group By は数字を示します。Edit → Group By...(Ctrl+Shift+G)で、グループ化する列と要約する列を選ぶと、結果を Group By という新しいシートに表示します。

Group By ダイアログ:部署ごとの給与

グループごとの行数を数える

グループ化する列だけにチェックを付けて Group を押すと、値ごとに 1 行と、その count(行数)が並びます。count 列で並べ替える(並べ替えボタンを 2 回クリック)と、大きいグループから順に見られます。

部署ごとの人数(多い順)

最後の空の行は、部署が空の行の数です。

グループごとの平均・最小・最大

Aggregate で列にチェックを付け、その下で関数を選びます:count(空でない値の数)、distinct(異なる値の数)、sum、mean、min、max、std dev(標準偏差)。要約した列と関数ごとに、Salary mean のような列ができます。平均は小数点以下が長くなりがちなので、列見出しのメニューの Format で、丸めて桁区切りを付けて表示できます。

Salary mean 列の表示形式を変える

部署ごとの給与(平均を丸めて桁区切り)

Says "hello" の行は、テキストの扱いを示しています。給与がテキストの 500000.0 で、平均では数値として数えますが、min と max では書かれたとおりに表示します。

シート全体の合計

Group by の列にどれもチェックを付けないと、すべての行が 1 つのグループになり、合計などの 1 行が得られます。

合計:Age の数、合計、平均、最小、最大、標準偏差

複数の列でグループ化する

Group by で 2 つ以上の列にチェックを付けると、組み合わせごとに数えます。たとえば City と Department なら、都市ごと・部署ごとに 1 行になります。

結果の使い方

Group By シートは普通のシートなので、並べ替え、フィルタ、グラフ(count のヒストグラムなど)、コピー、File → Export View... での保存ができます。もう一度集計すると置き換わります。ファイルを再読み込みしても残りますが、元のシートが変わっても更新されないので、フィルタを変えたら集計し直してください。値の比較方法は 集計(Group By) を参照してください。

グラフから行へ

グラフとフィルタは連動するので、段階的に絞り込めます。

上の箱ひげ図で Engineering の箱をダブルクリックすると、7 人のエンジニアが残ります。

箱ひげ図から Engineering に絞り込んだシート

グラフを画像として保存する

ヒストグラムと散布図のウィンドウの Save Image... で、グラフを軸の見出しも含めて表示どおりにファイルに書き出します。

種類は入力した名前の拡張子、またはファイルダイアログで選んだ種類で決まります。画像の大きさを変えるには、先にウィンドウの大きさを変えてください。

Web アプリ では、グラフのダイアログの Save PNG と Save SVG で同じように保存できます。ファイルはブラウザのダウンロード先に保存されます。散布図の点は SVG の中で個別の図形になります。

ターミナル UI では

ターミナル UI にも、文字で描く同じ機能があります。

ターミナルでの Category ごとの Score の密度分布

count で並べ替えた Group By シート

Salary mean 列の Format ダイアログ

すべてのキーは ターミナル UI の使い方 を参照してください。グラフの画像保存は GUI でのみ使えます。