棒グラフを描画するコマンドである。 x軸・y軸に展開する属性項目を指定することで、 1次元もしくは2次元の棒グラフ行列を描画することができる。 グラフは単独のHTMLファイルとして出力されるので、 一般的なブラウザで表示が可能である。
入力データには、Table 2.4のようなCSVを用いる。 棒グラフを構成する項目を構成要素項目といい、 f=パラメータで指定する。 x軸・y軸に展開する属性項目はk=パラメータで指定する。 k=パラメータで1項目を指定すると1次元の(x軸に展開された)棒グラフ行列が、 2項目を指定すると2次元の(x軸・y軸に展開された)棒グラフ行列が描画される。 k=パラメータを省略した場合は、1個の棒グラフが描画される。
なお棒グラフの描画には、内部的に JavaScriptライブラリD3.js(Data-Driven Documents)を使用している。 D3.jsの詳細は公式ページ(http://d3js.org/)を参照のこと。
また本コマンドを利用するためには、nysol/mcmdライブラリが必要となる。
Pref |
Age |
Population |
奈良 |
10 |
310504 |
奈良 |
20 |
552339 |
奈良 |
30 |
259034 |
奈良 |
40 |
450818 |
奈良 |
50 |
1231572 |
奈良 |
60 |
1215966 |
奈良 |
70 |
641667 |
北海道 |
10 |
310504 |
北海道 |
20 |
252339 |
北海道 |
30 |
859034 |
北海道 |
40 |
150818 |
北海道 |
50 |
9231572 |
北海道 |
60 |
4215966 |
北海道 |
70 |
341667 |
mbar.rb [i=] f= v= [o=] [k=] [title=] [width=] [height=] [cc=] [--help]
i= 入力データファイル名(CSV形式) f= 構成要素項目名を指定する。 データにnullが含まれる場合は無視する。 v= 構成量項目(棒グラフの高さを決定する項目)を指定する。 データにnullが含まれる場合は0として扱う。 マイナス、小数点に対応している。 先頭の0は無視する。数字以外の場合はエラーとなる。 o= 出力ファイル名(HTMLファイル) k= x軸・y軸に展開する属性項目名を2つ以内で指定する。 省略した場合は棒グラフを1つ作成する。 項目を1つ指定した場合は1次元の棒グラフ行列を、 項目を2つ指定した場合は2次元の棒グラフ行列を作成する。 title= グラフのタイトル文字列を指定する。 width= 棒グラフ用描画枠の横幅を指定する(デフォルトは250、1つの棒グラフは600)。 height= 棒グラフ用描画枠の縦幅を指定する(デフォルトは250、1つの棒グラフは400)。 cc= 1行に表示する棒グラフの最大数を指定する(デフォルトは5)。 1次元の棒グラフ行列のときのみ指定できる。 --help ヘルプの表示
なおmbar.rbコマンドには、 f=パラメータやk=パラメータで指定した項目を 自動的に並べ替える機能はない。 グラフに表示したい順に、あらかじめ並べ替えておく必要がある。
dat1.csvファイルのAgeを構成要素項目に、 Populationを構成量項目として棒グラフを1つ描画する。
$ more dat1.csv Age,Population 10,310504 20,552339 30,259034.5555 40,0450818 50,1231572 60,1215966 70,641667 $ mbar.rb i=dat1.csv v=Population f=Age o=result1.html #END# mbar.rb i=dat1.csv v=Population f=Age o=result1.html;
以下の棒グラフが描画される。
ブラウザで表示した棒グラフにマウスカーソルを置くと、 構成要素項目とその構成量がポップアップで表示される。 グラフはマウスによるドラッグ操作で移動することができ、 またマウスのスクロール操作によって拡大縮小もできる。
dat2.csvファイルのAgeを構成要素項目に、 Populationを構成量項目として棒グラフを描画する。 k=パラメータにPref項目を指定しているので、 Pref項目の値をx軸(横方向)に展開した1次元の棒グラフ行列が描画される。 title=パラメータでグラフのタイトルも指定している。
$ more dat2.csv Pref,Age,Population 奈良,10,310504 奈良,20,552339 奈良,30,259034 奈良,40,450818 奈良,50,1231572 奈良,60,1215966 奈良,70,641667 北海道,10,310504 北海道,20,252339 北海道,30,859034 北海道,40,150818 北海道,50,9231572 北海道,60,4215966 北海道,70,341667 $ mbar.rb i=dat2.csv k=Pref v=Population f=Age o=result2.html title=奈良と北海道の年代ごとの人口 #END# mbar.rb i=dat2.csv k=Pref v=Population f=Age o=result2.html title=奈良と北海道の年代ごとの人口;
以下の棒グラフ行列が描画される。
dat3.csvファイルのテーマパーク名を構成要素項目、 Numberを構成量項目とし、width=に幅200、height=に高さ150を指定して、 棒グラフを描画する。 k=パラメータにGenderとAge項目を指定しているので、 Gender項目の値をx軸(横方向)に、 Age項目の値をy軸(縦方向)に展開した2次元の棒グラフ行列が描画される。
$ more dat3.csv Gender,Age,テーマパーク名,Number 男性,30,デズニ,100 男性,30,UFJ,59 男性,30,梅屋敷,180 男性,40,デズニ,200 男性,40,UFJ,3 男性,40,梅屋敷,10 男性,50,デズニ,110 男性,50,UFJ,40 女性,30,梅屋敷,100 女性,30,デズニ,80 女性,30,UFJ,200 女性,40,デズニ,90 女性,40,UFJ,80 女性,40,梅屋敷,120 女性,50,デズニ,99 女性,50,UFJ,80 女性,50,梅屋敷,110 $ mbar.rb i=dat3.csv k=Gender,Age v=Number f=テーマパーク名 o=result3.html title=性別と年代ごとのテーマパーク訪問回 width=200 height=150 #END# ./bin/mbar.rb i=dat3.csv k=Gender,Age v=Number f=テーマパーク名 o=result3.html title=性別と年代ごとのテーマパーク訪問回 width=200 height=150;
以下の棒グラフ行列が描画される。