散布図で画像を描く

散布図で画像を描く

散布図で描画に挑戦

散布図とは

Tableau 散布図 散布図とは、X座標・Y座標へプロットされた点でできています。X=1の座標にY=1,2,3,4,5,このように点をプロットすれば散布図上に点で直線を描くことができます。座標の目盛をできる限り小さくしてプロットうまく配置すれば曲線を描くこともできるし、大概の図形を描くことができるはずです。

 画像はどうでしょうか。つまりX座標・Y座標の全てを点で埋め尽くして、それぞれの点にコントラスト(輝度)を設定するとモノトーンではありますが散布図をキャンバスにして画像を描くことができそうです。

データ
プロット番号 X座標 Y座標 輝度
A 1 1
B 1 2
C 2 1
D 2 2

 このようなデータをつくればよいはずです。プロットする座標はゼロから1,2,3,4,5,と、連続した数値にしてX軸とY軸の組み合わせをつくります。X=1・Y=1の座標へ黒い点をプロットする、X=1・Y=2の座標へグレーの点をプロットする、このようにそれぞれの点に輝度を設定します。
 問題は輝度ですが、「ImageJ」というフリーアプリをつかうと画像をテキスト形式でアウトプットすることができます。
ImageJ テキスト画像 テキスト画像とは、テキストファイルをCSVへ変換するとこのようになります。データの行数と列数は画像のピクセル数と一致します。元画像は225ピクセル×225ピクセルですから、225行×225列の表になっています。各セルの数値が輝度をあらわします。

データ加工

ImageJ テキスト画像 データへ行名と列名をそれぞれ追加します。行名はYにして1~225までの連続数値を入れます。この行がY軸の座標になります。列名も1~225までの連続数値を入れます。最終的に列名の数値がX座標になります。

タブローでプロット

データへ接続

Tableau データ接続 データソースがマトリクス型になっているのでリスト型へ変更する必要があります。

ピボット

Tableau ピボット フィールド名(列名)1~225をすべて列から行へピボットします。ピボットすると225×225=50,625行のデータになります。散布図へプロットする点が50,625個になるということです。
Tableau フィールド名変更 「ピボットのフィールド名」を「X」に書き換えます。データ型「ABC」(文字列)を数値(整数)へ変更します。「ピボットのフィールド値」を「Color」へ書き換えます。「Color」の値が輝度になります。
Tableau 計算フィールド追加 計算フィールドを追加します。プロットする点の名前になります。すべての値がユニークになる必要があります。点の数量をCOUNTDで計算したときに50,625個になるように設定します。

プロットする

Tableau 散布図 「X」がディメンションになってたらメジャーへ移動させます。「X」を列シェルフへ、「Y」を行シェルフへドロップします。計算フィールド「Plot」を詳細へドロップします。形状を塗りつぶし丸に設定します。散布図が丸で埋め尽くされてベタ青色になります。
Tabuleau サイズ変更 形状のサイズを小さくします。点と点のあいだに少し隙間ができて、全体的に色が薄くなります。

色をつける

Tableau 散布図 「色」へ「Color」をドロップします。画像が浮かび上がってきました。
Tableau 軸の反転 データソースを加工するときに「Y」へ昇順で数値を入れたため画像の上下が逆転しています。Y軸を右クリックして「軸の編集」→スケールの反転をチェックします。
Tableau 色の反転 色を黒へ変更します。輝度の数値が大きいほど黒くなるため、色を反転させます。
 完成です。

ジロー君の写真でやってみる

ピクセルが小さかった

ジロー君 128×128ピクセルの画像です。ピクセルが小さくなるとプロットのサイズを少し大きくしたほうが良い感じです。元画像のピクセルが大きく被写体が単純なほどハッキリと描画できるのでしょうが、プロットの最小サイズにも限界があるため写真のレベルで描画できることはありません。

コントラストをつける

Tableau パラメーター パラメーターをリストでつくります。ざっくり整数で1~10のリストにしました。後で試してみると1から0.5刻み位のほうがよかったです。
Tableau 計算式 パラメーターを埋め込んだ計算式をつくります。「Color」のべき算数にします。掛け算にすると単純に全体が明るくなったり、暗くなったりするだけです。
Tableau パラメーター調整 色をパラメーターを埋め込んだメジャーに変更します。パラメーターとプロットサイズを調整していい感じに仕上げます。
Tableau 色変更 色をセピア風に変更してみました。念写やハンドパワーなし、数値データから散布図へ画像を描くことができました。
 これはタブローにメジャー(連続)を色のコントラストで表現できる機能があるからですね。