【Chart.js】グラフの変更が完了しました【#np2020】

Chart.js
これまでのFlashを使ったグラフからChart.jsを使ったグラフへの切り替えが完了しました。既存のデータを現在のシステムに移行する必要がありましたが、Laravelで適当なコマンドツールを作って、amChartのXMLファイルを読み込んで解析、必要に応じてデータベース上にテーブルを作ってデータを入力という流れで簡単にコンバートできました。特にLaravelのEloquent ORMには助けられてばかりです。素敵すぎ。






Eloquent ORMを使ったデータの入力

例えば「test.xml」というデータファイルからグラフを作成したいとき、次のようにすることで対応するデータが存在しないときだけ作成する、みたいなことが出来ます。これが死ぬほど便利。

$graph = Graph::firstOrCreate(['name' => 'test']);

この1行だけで処理がステートフルになるんですよね。このグラフに結びつけるデータの方は、

$graph_data = GraphData::firstOrNew([
'graph_id'  => $graph->id
,'label'    => $label
,'is_valid' => true
]);
$graph_data->value = $value;
$graph_data->save();

みたいな感じで、あればそれを無ければ作成したオブジェクトにデータを渡して保存。「firstOrNew()」はオブジェクトを作るだけ、「firstOrCreate()」は保存までしてくれるんですが、その使い分けも便利です。おかげでコードの行数が少なくて済みました。最高。



移行したグラフたち

最近の「グラフ化」記事はGoogleスプレッドシートで作ったグラフを貼ることが多いので、今回移行したグラフは過去のものばかりです。必然的に目に触れる機会は二度と無いであろうと思うんですが、せっかく移行したので供養代わりに掲載しておきます。



1998-2008年度 全日空/日本航空連結 営業収益 / 純利益




日本航空が政府の救済で復活したときの記事。今見るとなんかよくわかんないですね。

JALはカイゼンせずとも儲かってたのか?たださぼってただけか? | mutter




京都市の観光入込客数及び観光消費額



2009年ぐらいの京都の観光収入に関する話。まさかこれから急激に増えるなんて思いもしませんでしたが。グラフ内では2008年の観光消費額6,561億円が最高になっていますが、2017年の京都府の観光消費額はなんと1兆1,887億円。3倍近くまで増えています。いずれグラフを更新してみたいですね。

京都市の観光入込客数 | mutter




天体戦士サンレッド アニメ再生数





アニメ「天体戦士サンレッド」の再生数が第1期と第2期とでどう変わったか?というグラフ。
当時はこういうの良くグラフにしてたんですね。

『天体戦士サンレッド』の再生数をグラフ化してみた | mutter




プロ野球年俸 / 観客動員数





プロ野球の経営に関して、人件費と観客動員数の推移の関連性をグラフにしてみたもの。プロ野球のビジネスもこの10年間でだいぶ進化したので、以前ほどは観客動員数に頼った経営にはなってない気がしますね。広島とか最近はだいぶ金がありますけど、マツダスタジアムは33,000人しか入らないし。


プロ野球の経営はどうなってしまうの?(Sports Graphic Number 754「Number on Number」より) | mutter