陳腐化する前に話をしておこうと思いましたが、あまり面白いものではなかったので枠の無駄遣い感がありました、けいなです。
今回も、Dentoo.LTで話してきた内容についてです。
細かい話はYouTubeのDentoo.LTチャンネルDentoo.LT#11とスライドslideshare・Speaker Deckに譲ります。
トラック泊地の開放初日に着任してから延々とやり続けている廃人提督ですが、あれこれと自分で管理するのが面倒になって専ブラ・支援ツールに手を出しています。(先日問題になった)Chrome拡張を利用していた時期もありましたが、最終的に記録魔な性分とWin・Macで運用できることを理由に航海日誌を使っています。
航海日誌が吐き出した次の資材ログを良い感じに表示する試みの話でした。
Boot CampのWindowsで取っていたログもありますが、(おそらく)マージしてません。
% nkf log | head -2 日付,燃料,弾薬,鋼材,ボーキ,高速修復材,高速建造材,開発資材 2014-04-03 06:26:37,33674,52280,52628,42649,360,599,522 % nkf log | tail -2 2015-05-10 13:56:56,221603,255400,234321,298388,2556,1902,1769 2015-05-10 14:02:13,221433,255064,234371,298278,2556,1903,1769 % wc -l log 15043 log % du -hs log 928K log
主に用いるのは話した通りGnuplotです。
Makefileに利用するスクリプトと変数の内容を起こすように記述して、ある程度適当に使えるようにしています。
Makefileには、イベント攻略の資源推移のプロット用、全期間のプロット用などの派生をいくつか作成していますが、抜粋で済ませます。
ファイル名、期間をdateコマンド及びgdateコマンドで設定しています(使い分けに特に理由はありません。調べてすぐ出てきた方を使いました)。
FILE= $(shell date "+%Y.%m.%d-%H%M%S") OLD = $(shell gdate -d '2 months ago 1 days' +%Y-%m-%d) OLDE= $(shell echo "2015-04-28 23:00:00") NOW = $(shell gdate -d '1 days' +%Y-%m-%d) NOWE= $(shell echo "2015-05-03 03:00:00") allh : /Users/KHe7/Application/macosx-x64/資材ログ.csv make svgh rsvg-convert -f png -o "$(FILE).png" "$(FILE).svg" rsvg-convert -f pdf -o "$(FILE).pdf" "$(FILE).svg" alle : /Users/KHe7/Application/macosx-x64/資材ログ.csv make svge rsvg-convert -f png -o "$(FILE).png" "$(FILE).svg" rsvg-convert -f pdf -o "$(FILE).pdf" "$(FILE).svg" svgh : /Users/KHe7/Application/macosx-x64/資材ログ.csv cp /Users/KHe7/Application/macosx-x64/資材ログ.csv ./log gnuplot -e "file='$(FILE)';old='$(OLD)';now='$(NOW)'" ploth svge : /Users/KHe7/Application/macosx-x64/資材ログ.csv cp /Users/KHe7/Application/macosx-x64/資材ログ.csv ./log gnuplot -e "file='$(FILE)';old='$(OLDE)';now='$(NOWE)'" plote
Gnuplotスクリプトの方では、”-e”オプションで受け取った変数を用いて出力ファイル名、x軸の期間を設定します。
また、SVGやPNGは何も設定しないと透過してしまうので、背景に白色を設定しています。
x軸に期間を設定するのに”set xdata time”と”set timefmt “%Y-%m-%d %H:%M:%S””を用いています。
色については各資源・資材の自分のイメージで決めました。組み込みに近い色があればそれに、なければ適当に数値で入れています。
set datafile separator "," set terminal svg size 2880,1620 font "ヒラギノ明朝 Pro W3.otf,24" set output file.".svg" set object 1 rectangle from screen 0,0 to screen 1,1 fillcolor rgb"#ffffff" behind set key left bottom set xdata time set format x "%Y.%m.%d" set timefmt "%Y-%m-%d %H:%M:%S" set xrange [old." 00:00:00":now." 00:00:00"] set ytics nomirror set y2tics set grid xtics mxtics ytics set yrange [250000:300000] set y2range [1500:3000] plot "log" using 1:2 w l lw 2 lc rgb "forest-green" title "燃料",\ "log" using 1:3 w l lw 2 lc rgb "#8d6a47" title "弾薬",\ "log" using 1:4 w l lw 2 lc rgb "gray60" title "鋼材",\ "log" using 1:5 w l lw 2 lc rgb "sandybrown" title "ボーキサイト",\ "log" using 1:6 w l lw 2 lc rgb "#aae272" title "高速修復材" axes x1y2,\ "log" using 1:7 w l lw 2 lc rgb "#ff9999" title "高速建造材" axes x1y2,\ "log" using 1:8 w l lw 2 lc rgb "light-blue" title "開発資材" axes x1y2
出力結果を2例示しておきます。
ひとつは全期間のログを用いたものです。
もうひとつは今回のイベント期間についてのものです。
よく考えるとこのどちらも上に示したMakefikeやGnuplotスクリプトで生成したものではないですが…余り変わらないので良しとしておきます。
前者はxrangeの設定を外してyrangeを[0:300000]、y2rangeを[0:3000]に設定しました。後者はxrangeをOLDE、NOEWで渡し、yrangeおよびy2rangeの設定を外した上で各期間に対応するような垂線を引き、凡例の位置を微調整しました。
ここまであれこれやったものの、あまり見栄えがしないので良い感じのビジュアライザを探したい気がしてきています。
次回は個人的な制作物のお話か、各種機関に対して行ったお問い合わせについて書きたいと思っているので、下調べと実行に取り掛かるつもりでいます。