ぼちぼちですが可視化してます

ここでは、 Ledger-cli (3.11)と Gnuplot (5.28)および bash (on ubuntu16.04)の組み合わせで描いた各種グラフのとりあえず「 見た目 」だけを紹介します。中身の説明とかソースなどは後日、GitHubとかに上げます。

二次元プロットの例

1は経理情報を可視化するための自作スクリプトによる出力例です。

図1:  経理情報可視化スクリプトの出力例。金額が見えないように意図的に解像度を下げています。

図1: 経理情報可視化スクリプトの出力例。金額が見えないように意図的に解像度を下げています。

これらのグラフは、元帳にある(4月1日から)当日までの全トランザクション(取引)から、Ledgerのクエリー機能をつかって分析したいデータを抽出し、それをGnuplotの要求する形式に整形してプロットしています。

かなり面倒な整形や計算をしているグラフもありますが、すべてワンクリック(またはコマンドラインからのコマンド入力)によって、ほとんど 瞬時 に表示されます。

Ledgerの計算速度には目を見張るものがあります。C++の効果かしら? それからGnuplotの描画スピードもすごい。元帳のポスティング行数は5,000行以上もあるのに、グラフが出てくるのを心理的に「待つ」ということがありません。PCはLenovo/X230というかなり型落ちのノートなんですが・・・。

3Dプロットの例

次の図2は、Ledger+gnuplotによる3Dプロットの例図(試作品)です。縦軸の金額にはボカシを入れています。

図2:  上位5位までのアカウント(勘定)の支出推移

図2: 上位5位までのアカウント(勘定)の支出推移

アカウンティングの世界で3Dプロットが普及していないのは、3Dの図から視覚的に多くの情報を抽出するのが思いの外むずかしいからかも知れません。しかしこれをマウスでクリクリ回して様々な視点から アニメーション で見えるようにすると、新たな傾向が見えてきて、「おぉ!」と言う感じになります。それはまた後日ということで・・・

(おまけ)日々の支出状況をみるtodayスクリプト

日々の記帳作業のあと、(1) その日の入力を確認するため、(2) 月々の支出予定金額に対して現在の支出がどれくらいの割合になっているかを一目で見るために、 today という ターミナル 上で動く小さなスクリプトを作って愛用しています。図3の下の方には、 $ ledger bal ^expenses -p todayreg の出力を表示していますが、省略しています。

図3: today スクリプトのスクリーンショット。金額はダミーです。

図3: today スクリプトのスクリーンショット。金額はダミーです。

可視化 というにはお恥ずかしい限りですが、せめてもの罪滅ぼしで、予算達成率を プログレスバー にしました。また本来なら必要な長さのバーを静的に表示すれば良いのですが、あえてバーがゼロから目標値まで伸びていくようにしています。さらに上のように予算を超えた場合にはバーを くします。90%を超えると 色になるという風にして遊んでいますw

Acknowledgement

次のサイトがとても役に立ちました。