Dentoo.LT#11

陳腐化する前に話をしておこうと思いましたが、あまり面白いものではなかったので枠の無駄遣い感がありました、けいなです。

今回も、Dentoo.LTで話してきた内容についてです。
細かい話はYouTubeのDentoo.LTチャンネルDentoo.LT#11とスライドslideshareSpeaker 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例示しておきます。
ひとつは全期間のログを用いたものです。
2015.05.10-232138
もうひとつは今回のイベント期間についてのものです。
2015.05.10-232132

よく考えるとこのどちらも上に示したMakefikeやGnuplotスクリプトで生成したものではないですが…余り変わらないので良しとしておきます。
前者はxrangeの設定を外してyrangeを[0:300000]、y2rangeを[0:3000]に設定しました。後者はxrangeをOLDE、NOEWで渡し、yrangeおよびy2rangeの設定を外した上で各期間に対応するような垂線を引き、凡例の位置を微調整しました。

ここまであれこれやったものの、あまり見栄えがしないので良い感じのビジュアライザを探したい気がしてきています。

次回は個人的な制作物のお話か、各種機関に対して行ったお問い合わせについて書きたいと思っているので、下調べと実行に取り掛かるつもりでいます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ERROR: si-captcha.php plugin: GD image support not detected in PHP!

Contact your web host and ask them to enable GD image support for PHP.

ERROR: si-captcha.php plugin: imagepng function not detected in PHP!

Contact your web host and ask them to enable imagepng for PHP.