企業収益を美しく魅せる:Claude 3.5と共に挑むサンキーダイアグラム作成奮闘記(後編)
前回の記事で、
・生成AI技術の熾烈な競争と急速な進化の紹介
・損益計算書の斬新な表現手段となる「サンキーダイアグラム」を知ったこと
・Claude 3.5の助けを借りて、同様のサンキーダイアグラムを作成しようと試みたが失敗したこと
・AIの画像処理能力やプログラミング支援能力の高さを実感できたので、アプローチを変えて再挑戦することを決意したこと
を投稿しました。
今回の記事はその後編になります。
1. 現状分析:Claude提案コードの評価
1.1 可視化に使っていたのはデータ視覚化ライブラリPlotly(👍)
コードを確認したところ可視化に使われていたのはplotlyということがわかりました。Pythonの代表的なデータ視覚化ライブラリのMatplotlibでもサンキーダイアグラムは作れますが、Matplotlibよりも高機能のようです。
1.2 csvデータ入力を前提としたコードになっていない(👎)
運用面ではcsvファイルをGoogle Colaboratory上にアップロード、それを読み込ませてプログラムを走らせることを当初から想定していました。ただどういうデータフレームを準備すべきか分かっていませんでした。
2. 戦略の変更:ゴールと活動内容の再設定
描画に必要なヒントは得られていたので、戦略を変え準備に必要な基礎的な情報を収集することからスタートしました。
2.1 Plotlyの公式紹介ページからデータフレーム情報を獲得
まずPlotlyの公式のサンキーダイアグラムの紹介ページに目を通したところ、下の詳細説明Webページへのリンクを見つけました。淡色の帯はリンク、濃色の連結部はノードと呼ばれていることがわかりました。また、作図に必要なデータフレームも見つけることができました。このページの再現をゴールとしました。
2.2 plotlyサポートページからサンキーダイアグラムのコードの理解を深める
plotlyというデータ視覚化ライブラリの特徴は次のような特徴があります。
インタラクティブな可視化が可能
カスタマイズ性が高い
Webベースのアプリケーションとの相性が良い
豊富なドキュメントとコミュニティサポートがある
下図のような豊富な可視化ツールを備えていることがわかりました。またサンキーダイアグラムの公式リファレンスが見つかったので、コードの理解に必要な因数や属性も事前に把握できました。
2.3 ゴールと活動内容の再設定
以上の準備が進んだので再度ゴールと活動内容を再設定しました。
3. Claude 3.5との協働:サンキーダイアグラム作成の成功
3.1 最初の提案コードの実行結果
Claudeに指示を出します。「次のデータを使って、サンキーダイアグラムを描くgoogle colab.上で動くpythonプログラムを作成して下さい。・・・」
出力コードを実行すると次の図ができました。
3.2 コードの修正と図に追加情報を加えてサンキーダイアグラムの可視化に成功
これだと色が違います。
ノードを濃色に、リンクを淡色に指定し、支出に相当するお金の流れは同色に揃えました。
ノードの長さで表現されている金額の大きさを図上に表示するようコードを変更しました。
年間成長率(YoY%)も出力できるよう、追加データをデータフレームに加え、再度コードを修正しました。
ノードの位置を調整し、図5を得ました。
勉強すればもっと洗練されると思いますが、最も図示したかったお金の流れは見えるようになったので、めでたくゴール達成としました。
4. サンキーダイアグラムの有効性:損益計算書の可視化
損益計算書の可視化は、ウォーターフォールダイアグラムが一般的だと思います。
下の図6は同じAPPLE社の2022年の損益計算書の数字を用いて描いたウォーターフォールダイアグラムになります。ただし欠点もあります。
・やや直感的ではない。
・営業費用の細かな項目、研究開発費や販管費などを加えると煩雑になる。
・総利益貢献している製品やサービスの表現が困難である。
図5のサンキーダイアグラムだと、お金の流れを左から右に流れる川のように可視化することが可能です。
つまり本川に合流する支川として総利益に至るお金の流れが黒系のカラーで表現され、外部に出ていったお金は赤系で残った利益は緑系のカラーで、派川として表現されているのです。
営業費用の細かな項目や年間成長率の視認性にも優れ、より洗練された損益計算書の可視化手法と感じました。
5. 生成AIがプログラミングにもたらす影響
プログラミングの世界は生成AIの登場と共に環境が激変したと思います。ChatGPT3.5もアシストしてくれましたが、Claude3.5はそれより遥かに優秀で、いきなり完成度が高いコードを書いてくれます。さらにGoogle Colab上でもGeminiがコードの修正を手伝ってくれるようなりました。
プログラミングのハードルが劇的に下がりました。
その結果、自分ができると思わなかった複雑なデータの可視化の世界が急に身近な世界として近づいてきました。いきなり図6のような応用問題も解けるようになったのです。自分の中で、”どうやったら”よりも”何を”表現したいのかにフォーカスが変わってきました。また別の課題にチャレンジしようと思います。
最後までお読みいただきありがとうございました。