たごもりすメモ

コードとかその他の話とか。

GrowthForecastでグラフの色を簡単に大量に変える方法

みんな大好きGrowthForecastなしではもう生きていけない気がするtagomorisです、こんにちは。

GrowthForecast - Lightning fast Graphing / Visualization

もう世の中ではかなり使われるようになってきたみたいなのでいちいち自分がどれだけ素敵なツールかは繰り返さなくてもよくなってきた感がありますから省略しますが、GrowthForecastは本当にナイスなツールですね。

が、ふたつだけ問題点がありまして、そのうちのひとつは「適当にグラフデータを突っ込むとグラフの色が適当な色に設定される」というもの。*1

いや投入時にいちいち色を指定しないと投入できないよりははるかに良いのですが、後からデータの種類別に色を揃えたい! と思ったときに大量のグラフの色設定をぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちぽちと変えるのは極めてしんどいものがあります。

解決!

というようなことを社内IRCで愚痴っておりましたら解決されました! グレートな方法がありましたのでここでもご紹介。

GrowthForecastにはデータ投入時に同時にグラフ色を指定するオプション引数 color があります。
更にデータ投入時に投入数値をどう扱うかというオプション引数 mode に count というものがあり、これを指定すれば「投入した数値を前の数値に加算する」という動作となります。

これを組合せることで mode=count&number=0&color=#xxxxxx とすれば実質的には値の更新なしに色設定をグラフに対して行うことができるわけですね!
で、同じ色を大量のグラフに指定したい場合は単に curl でこれをぐるぐる回してやればOK。

for sec in foo bar baz hoge moge pos koge ; do
  curl -F mode=count -F number=0 -F 'color=#77cccc' http://gf.local/api/service/${sec}/pale_graph > /dev/null 2>&1
done

かいけつ!

*1:ちなみにもうひとつは、グラフの数が多くなってくると複合グラフを作るのがめんどい、というもの……。