Previous: mpie.rb 円グラフの描画 Up: 視覚化コマンド Next: mgv.rb Graphviz用グラフデータ(.dot)の作成 VIEW
VIEW : 視覚化コマンド : mbar.rb 棒グラフの描画

2.3 mbar.rb 棒グラフの描画

棒グラフを描画するコマンドである。 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ライブラリが必要となる。

Table 2.4: 都道府県と年代別の個体数

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


2.3.1 書式

  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=パラメータで指定した項目を 自動的に並べ替える機能はない。 グラフに表示したい順に、あらかじめ並べ替えておく必要がある。

2.3.2 利用例

例1: 棒グラフを1つ描画する

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;

以下の棒グラフが描画される。

ブラウザで表示した棒グラフにマウスカーソルを置くと、 構成要素項目とその構成量がポップアップで表示される。 グラフはマウスによるドラッグ操作で移動することができ、 またマウスのスクロール操作によって拡大縮小もできる。

\includegraphics[scale=0.5]{figure/mbar1.eps}

例2: 1次元の棒グラフ行列を描画する

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=奈良と北海道の年代ごとの人口;

以下の棒グラフ行列が描画される。

\includegraphics[scale=0.5]{figure/mbar2.eps}

例3: 2次元の棒グラフ行列を描画する

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;

以下の棒グラフ行列が描画される。

\includegraphics[scale=0.5]{figure/mbar3.eps}
Previous: mpie.rb 円グラフの描画 Up: 視覚化コマンド Next: mgv.rb Graphviz用グラフデータ(.dot)の作成 VIEW