見出し画像

Chat-GPT4で作成したデータソースでTableauのドット絵を作ってみました


はじめに

ChasosoさんからXツイートに棒グラフとドットチャートが切り替わるVizが紹介されています。
素晴らしいVizで大変感動しました。ドットチャートの部分を眺めていて、真似事ではないですがChat-GPTで絵を作るデータ作成が出来ないかと考えました.
絵心のない私、絵とデータソースの作成を一連でChat-GPTに頼み、Tableauの分布図(ドットチャート)での絵作り方法を検討したので、記事に記載したいと思います。
色付けした絵については、Tableauでの色設定方法に一工夫必要です。本稿はドットチャート絵のChat-GPTでの操作などを先に重点的に説明するようにしました。色の設定は、別の投稿としています

Chat-GPTは、Ver4を利用した事例となります。
私自身 Chat-GPTを使い始めたばかり、Tableauの仕様・操作なども熟知していないため、試行錯誤してやってみた範囲での記述になることご了承ください。
改善点は多くあると思います。みなさまのお知恵でブラッシュアップして頂ければ幸いです。

1)Tableauでドットチャート作成に必要な項目

Chasosoさんの前述Vizでは、ドットのサイズを上手く使い、人物像をサイズで濃淡を示していた点を参考に、検討をスタートしています。
Tableauで分布図で絵を描く際に、次のフィールドがあると作業工数少なく作成が出来ました。

  1. ドット座標(縦横 X軸、Y軸)

  2. ドットサイズ

  3. 色情報(グラデーション番号、色コード)

事例含め後述しますが、ドット数(マトリックス)は縦横それぞれ150前後が適当のようです。ワークシート上で絵として見せるために、PCなどの画面解像度やサイズに合わせた数項目の調整が必要になります。
最大1,000マトリックスまで試しましたが、調整してもドットが潰れてベタ塗り状態になってしまいます。

ベタ塗り状態 こんな感じ
(これは150のマトリックスでの例)

ドットサイズは無くても絵になるようですが、濃淡に合わせたドットに大きさの要素をデータとして持たせると、調整が容易になると感じています。
ただ、今回作成した色付きのVizでは、ドットサイズが無いデータがGPTから出力され、それでVizを作っています。詳細後述しますが、Viz作成時にはドットのサイズ変更は実施しています。

2)Chat-GPTで作ってもらうもの

元絵の作成

今回は、分布図 ドットデータの元絵をChat-GPTにて作成。元絵は、GPTに詳しい依頼(プロンプト)をすれば、それに応じた絵を出力してもらえると思います。
私は、次のような問いかけで今回の元絵を作成しています。さらっとした依頼内容ですが、それなりの絵を作ってくれます。

元絵は4種

  1. 赤い富士山の絵をまず描いてください。(100ドット

  2. 海の上から望む晴天下の富士山を見ている風景画を描いてください。(モノトーン

  3. 京都 東寺の五重塔を描いてください。水墨画のようにしてください。(白黒グラデーション

  4. 山中湖で見た逆さ富士を風景画として描いてください。(色付きカラー

データソースの作成

元絵を作成後、データソース作成のために元絵からの情報が欲しい趣旨をGPTに依頼します。
元絵の番号に対応した指示内容は次の通りです。
あまり細かい指示をしないで検討を進めていました。下記の記述は、検討の時間経過に即した内容になっています。
GPTに指示するプロンプトを適正化すれば、得たい形式での良いデータが得られるようになると思います。
今回は素人範囲でここまでで、、

  1. その絵を、ドット絵になるようにデータソースにしてください。 → この依頼で、縦横100ドットのデータが出力されました。

  2. 海と富士山の絵をドットの分散図としてTableauで描画できるように、データをCSVファイルに保存しました。こちらからCSVファイルをダウンロードして、Tableauでドットプロットを作成してください。 → この後、縦横150ドットで、色のグループを100作成するように指示を入れています。

  3. この絵をTableauで散布図でドット絵を描けるデータにしてください。縦横150のドットとし、ドットの大きさで濃淡を示せるようにしてください。白黒のグラデーションが作れるように、色のグループを100作し、1が白、100が黒になるデータも入れてください。Macで利用できるようになるデータソースを作成してください。 → この指示には、1回でTableauで問題無く処理が出来るデータを出力してくれました。

  4. 一番最初の絵で、Tableauでドット絵を作りたいと思っています。 縦横150ドットで、ドットサイズと色のグループでデータを示してください。色のグループは20としてください。この条件で、データソースを作成してください。 → この後、色のグループは100とする指示を入れています。色については、この指示だけでRGB表記のデータになっていました(偶然です)。具体的に色の指示を入れた方が良いと思います。

私の方で入力した依頼内容(プロンプト)が不十分な点もあり、これらのデータソース出力が思いの通りの結果にならないことが多々ありました。
問題点として出ていた内容は、次の通りです。

  • 出力するファイルが、左右90度回転したデータとなっている

  • データの回転補正を何度かしている内に、元絵からデータが左右180度対象に出力されている(上記2項はこの事例です。作業はデータそのまま作図をしています)。

データの左右回転は、3、4項ではあまり発生しない状況になっていました。1、2項の作業後 1週間経っていますので、GPTの学習効果があったかもしれません。

上記4項での色の指定で、16進法の色表示がデータとして出力されてきました。偶然的要素が強いです。
色を指定する際は、16進法、もしくはRGBで出力する点をプロンプトとして指定した方がスムーズに作業が進むケースもあるようです。先ほどの角度と同じく、GPTからの出力はまだ完璧ではないため、根気よく依頼する、もしくは確実に回答が得られるような質問を見つける、教育する必要はあるかと思います(プロンプト入力の習熟ですね)。

これらの点は、これからAI側の学習機会が増えれば、自然と解決されていく問題だと思いました。

3)作成事例

元絵、Tableauでの作図操作、出来上がったVizを紹介します。

100ドット

元絵

データソース(CSVファイル)をTableauで接続。ドット座標としてXを行に、Yを列に、Dot Sizaをサイズに入れて、分析メニューの「メジャーの集計」チェックを外す。
このデータにおいては、色に関する情報はありません。データ座標 100ドットで自動的に出力されています。

一般的な散布図の作り方と同じです。ドット座標X、Yの行列への入れ方は、出力されたデータ内容に合わせ入れ替えて頂くことでOKです。

ドットのサイズ、右に表示されたDot Sizeの大きさをそれぞれ調整し、絵として見れるようになるよう調整を行います。
この際、表示している画面(ウインドウ)の大きさに見え方が大きく影響します。解像度の低い写真を引き伸ばし荒くなる感じと同じです。
軸の表示を消すことでも調整度合いが変わります。かなり微妙な塩梅がありますので、作業状況に応じて調整してください。

 *人の目の感覚で見え方変わりますので、ドット絵で完璧を目指すのは
   難しいかもしれません。

Viz マークのサイズで見え方を調整

作成したVizは、こちらです。

Tabeau PublicにVIzをアップした際にも、絵の見え方が変わります。
どこまで完成度を高めるか? 今回は、Public掲載時の変更は手をつけないことにしました。

モノトーン

元絵

データソースに色の情報を加えたVizの検討になります。
GPTは最初 RGBの色データを追加してくれたのですが、私の方でTableau側の処理方法が分かってなく、色のグループ番号としてデータ出力をしてもらいました。

最初に、ドット絵として色の滑らかさを出すためのデータ項目に関する条件を検討しました。次の項目です。

  1. 座標数(縦横のマトリックス)

  2. ドットサイズ有無

  3. 色の設定(グループ分けする数)

1)座標数(縦横のマトリックス)
座標数の増加で、色味が滑らかに表現できる可能性があリます。
縦横それぞれに100、150、200、500、1,000としてデータ出力を行いました。500以上は、前述のベタ塗り状態になってしまうことと共に、データ量が座標、ドットサイズ、色の情報含めると数MB以上になり、Tableauでの種々処理が遅くなりました。
よって、200ぐらいまでがBetter。私のPC環境では、150ぐらいが適当として基準にしています。

2)ドットサイズ
GPT側で、ドットサイズは自動で設定してくれています。
サイズ情報の有無で作図の比較をしましたが、上記の座標数条件下では、サイズの情報無しでは絵と認識出来るものは作りきれませんでした。
PCモニタの画面サイズに合わせた座標数で座標位置のみを指定し、そこにサイズ情報は持たせず色情報だけで絵とすることは可能と思いますが、データのファイルサイズ的に大きくなりすぎる点と、Tableauの動作が遅くなる傾向が見られたので、今回は詳細検討は進めませんでした。

3)色の設定(グループ分けする数)
上記1)、2)の制限から、色の設定に関する情報の持たせ方が絵作成のポイントになります。
モノトーンの検討では、GPTに「色のグループ分けをして」とお願いし、色の番号を出力してもらう形で 色の数 を検討しました。
20、50、100で検討。色の数を増やすことでグラデーション要素として明らかに滑らかな表現になります。Tableauの処理速度として100で作業可能でした。
以後の色は100を基準に検討を進めています。

色の数 20で設定
色の数 100で設定(左右が逆です)

お気づきかと思いますが、色の数 100のデータソース出力をプロンプトで調整していた際に、データが左右逆になってしまっています。
左90度回転、絵が逆さまになり180度回転と複数回の調整をお願いしている内に、左右入れ替わってしまったようです。修正作業を遡るのも大変だったので、今回はこのまま絵の作図に移っています。
左右や回転の調整は、最初の元絵に戻って改めてプロンプトの指示を出す方が良いと思いました。

Tableauでの設定
データソースの内容は、下の表になります。
ドット座標としてXを行に、Yを列に、Sizaをサイズに入れて、分析メニューの「メジャーの集計」チェックを外す。Color100を色に入れて作図します。

データの内容

ドットのサイズ、右に表示されたSizeの大きさをそれぞれ調整し、絵として見れるようになるよう調整を行います。
色については、GPTで自動に割り振られた色のグループ番号を利用する形になっています。白黒もしくは青系などの見やすい色合いのグラデーションで設定すると、絵として見れるものになるようです。この点は、色々試してみても良いと思います。

画面左 マークのサイズと、右に表示されるSizeを適宜調整

今回は、青系グラデーションで絵として扱える点を確認した時点で、検討終了としました。元絵とVizを比べると、元絵の白部分がVizでは濃い色合いに設定されていたりと調整が必要な点が多々あります。
グラデーションで薄い濃いを反転させれば! とのご意見を頂きそうですが、今回実施した範囲では、反転させた後の濃い部分のドットサイズ調整が上手くいかず荒い絵となってしまうことから、反転対応は断念しています。

作成したVizは、下記になります。

白黒グラデーション

元絵

データソース 色の情報を活用する段階の検討です。
私の検討は、先に色付けを実施したのですが、ここでの説明ではちゃんとした「色でのグラデーション設定」を先にするようにしました。
マミタスさんが素晴らしVIzを発表されていたので、敬意を表し引用させて頂くと共に、白黒グラデーションの作成の参考とさせて頂きました。

マミタスさんViz

データソースの作成、およびTableauでの設定は、基本 モノトーン の時を同じです。
データソースの作成時にGPTへ「白黒のグラデーションが作れるように、色のグループを100作し、1が白、100が黒になるデータも入れてください」との指示をしている点が留意点です。色のグループ(Color Group)が入ったデータの内容は次の通りです。

データの内容

サイズ調整など実施したVizがこちらになります。

作成したVizのドット絵

最終的に作成したVizです。

色付きカラー

元絵

Vizとして色付けをした検討になります。
私の方でTableau側のRGB色データ処理が理解出来たので、トライしてみました。
思いの外、綺麗に仕上がりましたが、色設定とVizサイズの調整はかなり手間がかかります。
Tableauでの色設定(準備)方法は、別の投稿にしたいと思います(GPTが詳しく教えてくれましたので)
こちらでは、Tableauでの作成手順を記載します。

前述の通り、GPTで出力してもらったデータソースで、色データはRGB表示になっていることが前提になります(私は、偶然出力してもらっていました)。
ここは、しっかりGPTのプロンプトで指示し、色要素の出力をしてもらってください。
モノトーンでの検討と同じく、色の数が少ないとグラデーションがかかった絵にはなりません。最終的に100の色を作ってもらい、Tableau側でデータとして利用しています。もっと色数多ければ、さらに鮮明なVizが作れると思いますが、Tableau側の作業負荷が多くなるので、あまりお勧めはしないです。

Tableauでの設定
データソースの内容は、下の表になります。
ドット座標としてX Positionを行に、Y Positonを列に、Sizaをサイズに入れて、分析メニューの「メジャーの集計」チェックを外す。Hex Colorを色に入れて作図します。

データの内容

データと見てわかる通り、今回 GPTから出力されたデータではドットサイズに関するデータはありませんでした。

色の設定は、かなり手間暇かけて行っています。概要は次の通りです。
(A)利用される色の登録
 別途 詳細投稿しますが、Tableauで利用している Preferences.tps ファイルの色追加手続きが必要です。今回100色を利用していますので、その分の設定をしてます(カラーパレットを5種作成)。

(B)マークの色からの色設定
Tableau上で、色のデータ(今回は「Hex Colorと表示)が画面右に個別表示されるようになります。
表示されているRGB(16進法)色番号に応じて、(A)で設定したカラーパレットの色をそれぞれ設定します。100色全部設定しました。これが一番大変。
TableauのTipsとExcelを使って間違えないような作業をしました(こちらは、別投稿でお話を)。

100色の色を個別に割り当て

サイズ調整
色設定が終了すると、それなりの構図が出てきます。ドットサイズのデータはありませんが、ドットデータなのでマークのサイズで大きさの調整をして絵らしく仕上げていきます。

マーク サイズの調整

マーク 自動の欄で形状を指定する(円などを使う)ことで、見栄えが良くなるケースもあると思います。今回は、自動(中抜きの円)のまま調整し対応しています。
今回、ドットサイズのデータがなかったためか、マークのサイズの調整だけでは滑らかなグラデーションにはなかなかなりませんでした。最終的に、Tableau自身の画面サイズを小さくすることでVizのサイズも小さくなり、滑らかさが出てきた感じです。
Tableau PublicにVizをアップしてますが、大画面のモニターで見て頂くと画素の粗い絵になると思います。この辺りは、まだまだ改善点多いと思っています。

作成したVizのドット絵

最終的に作成したVizです。
ダッシュボードで表示サイズをカスタム固定にして小さい絵にしていますが、ちょっと画素粗いところはご容赦ください。

おわりに

Chat-GPT4を使用して、Tableauでドット絵を作成する手順について記載してましたが、いやあ AI すごいと改めて思った次第です。
Viz作成にデータの前処理がいつも大変と思っていますが、今回に関してはAI様さまと思っています。
単色のドット絵であれば、絵の作成依頼とデータソース出力 + Tableauでの作図に20分ぐらいあればできる感じです。
もう少しデータの出力方法を工夫すれば、データソースとしての完成度は高められると思います。

というより、Tableauの操作自信もAIで出来ちゃう? なんて感じ、今後の展開は色々と注視していく必要があるなと思いました。
AI の有効利用で、私的には完全にサポート役を得たと感じるほどのものがありました。報道がよくされている様に、仕事の仕方 完全に変わりますね。実感した次第です。


この記事が気に入ったらサポートをしてみませんか?