多次元尺度法を六角形ビンで描画する

多次元尺度法を六角形ビンで描画する

たいがいのことができるタブロー、はたして、多次元尺度法を六角形ビンで描画することができるのでしょうか?

自己組織化マップ風

「語」のクラスター

 KHcoderの自己組織化マップと階層的クラスターがよく似ているという記事を前回書きました(KHcoder 25. 自己組織化マップ(第2回))。

 KHcoderでは多次元尺度法でも「語」をクラスタリングすることができます。
 今回はKHcoderの多次元尺度法からアウトプットできるデータを使用してタブローで自己組織化マップ風六角形ビンをつくってみます。

 対応分析結果を六角形ビンで表現した記事(対応分析を六角形ビンで描画する)を投稿しましたが、これはあくまで六角形ビン風のものでした。今回は本物の六角形ビンをつくります。

多次元尺度法
KHcoder 多次元尺度法設定

 KHcoderの分析対象テキストは今回も「こころ」です。
 多次元尺度法で「語」をプロットしてクラスタリングします。

 「語」数が多いほうが最終形の出来栄えがよいので
・最小出現数=20に設定します。
・「語」数合計が225になりました。

・多次元尺度法のオプション、方法=Classicalにします。
 デフォルトはKruskalになっていますがKruskalで描画すると全体を丸く収める傾向が強いので個人的にダイナミズム感が強く「語」のバラつき感を表現できるClassicalに設定しました。

・距離はJaccardのまま、方法と距離は数通りの組み合わせを試してみて個人のお好みの設定を選択すればよいと思います。

・バブルは外します。

・クラスター数は8、自己組織化マップのクラスター数に合わせます。

・正方形のキャンバスに描画したいので縦横比を固定します。

・左下の「表示」をドットのみへ変更して全体のプロットの様子を確認します。

KHcoder 多次元尺度法プロット
データ
CSVデータ

・右下の「保存」をクリックしてCSV形式でデータをアウトプットします。
 何故か私のPCでは44語しか取り出せないのでデータはRからアウトプットしました。

・A列が「語」
・dim1=X軸座標
・dim2=Y軸座標
・frequency=「語」の出現回数
・cluster=クラスターです。
 このデータへタブローから接続します。

タブロー六角形ビン

散布図で確認
Tableau 散布図

・dim1を列シェルフ
・dim2を行シェルフへドロップします。
・詳細へ語
・クラスターで色分けをします。

 KHcoderから出力した図とくらべてみると上下が逆転しているので
・dim2の軸を反転します。

 これで散布図の完成です。Rのバージョンによって上下左右の逆転現象がおこるようです。KHcoderからCSVで出力できればこのような現象はおこりません。

パラメーターと計算フィールドの作成
Tableau パラメーター

 範囲のパラメーターを作成します。
・データ型=整数
・現在の値=10
・最小値=10
・最大値=200
・ステップサイズ=10、このように設定しました。

Tableau 地理的役割

・dim1とdim2を複製します。
・dim1(コピー)を地理的役割「経度」へ変更して名前をdim1(X)へ変更します。
・dim2(コピー)は地理的役割「緯度」にしてdim2(X)へ名前を変更します。

Tableau 計算フィールド

 六角形を形状ではなくビン(入れ物)にするためには絶対座標が必要です。

 絶対座標のキャンバスを六角形メッシュで区切るわけです。
 タブローは絶対座標の緯度経度を保持しているのでこれをつかいます。別途座標へ接続する必要がありません。

 座標を地理的役割に変更しない場合は六角形はビンになりません。そうなると、あくまでも六角形は形状であって各六角形内へはプロットポイントが入り込むことはありません。

 六角形ビンの計算フィールドを作成します。
・Xが横軸(経度)
・Yが縦軸(緯度)になります。

#X計算式
HEXBINX([dim1 (X)]*[PM1],[dim2 (Y)]*[PM1])/[PM1]
#Y計算式
HEXBINY([dim1 (X)]*[PM1],[dim2 (Y)]*[PM1])/[PM1]
プロットする
Tableau 軸設定

・X、Yをメジャーからディメンションへ移します。
・Xを地理的役割「経度」
・Yを地理的役割「緯度」へ変更します。

Tableau Map

・Xを列シェルフ
・Yを行シェルフへ入れます。
 X=経度、Y=緯度になっているため、タブローは地図を描きます。

・マップ→バックグラウンドマップ→なしを選択して背景の地図を消します。

Tableau 六角形ビン作成

・色へレコード数をドロップします。
・色はグレーの分布です。
・形状を六角形にします。
・パラメータPM1と形状のサイズを調整します。
・書式設定→セルのサイズの設定でX軸とY軸のスケールが同一になるように調整します。

 六角形ビンのどこかにマウスオーバーしたときに表示されるレコード数がその六角形ビン内にあるプロットポイント数です。

Tableau クラスター

・Xを列シェルフへ追加します。
・X2の色をレコード数からclusterへ変更します。
・色の不透明度を65%に設定します。

 KHcoder自己組織化マップでいうと、左図がカラーを度数に設定した図、右側がカラーをクラスターに設定した図です。

Tableau 二重軸

・Xを二重軸にします。
 二重軸のテクニックはこちらで解説しています。(KHcoder22. 共起ネットワーク(第3回) タブローでネットワーク図

Tableau 多次元尺度法六角形ビン

・図を重ねます。クラスターの色分けに少し濃淡がつきます。
・色の調整はコード数グレーの色と
・クラスターの不透明度でおこなってください。

 図を重ねたときに図形がずれるときは
・X軸を右クリックして軸を同期します。

・Y軸を反転させると完成です。

ダッシュボードをつくる

散布図を変更
Tableau 散布図

 はじめに作成した散布図を少し変更します。
・clusterを形状
・frequencyをサイズ
・語をラベルに設定します。

ダッシュボード
Tableau ダッシュボード

・ダッシュボードへ六角形ビンと散布図をはりつけます。
・六角形ビンから散布図へのフィルターアクションを追加します。

六角形ビンをクリックするとビンの中身を見ることができます。


>KHCODER & TABLEAU