43.59.8.10 Histograms

スタイル histograms は 2 次元描画でのみ有効です。これは、データの各 列の並びから平行な棒グラフを作ります。plot コマンドの各要素は、それ に関する目盛りの値や説明のタイトルが付属するかも知れませんが、単一の 入力データを指定する必要があります (例えば入力ファイルの 1 つの列)。現 在は、4 種類のヒストグラム形式のスタイルがサポートされています。


     set style histogram clustered {gap <gapsize>}
     set style histogram errorbars {gap <gapsize>} {<linewidth>}
     set style histogram rowstacked
     set style histogram columnstacked

デフォルトのスタイルは set style histogram clustered gap 2 に対応し ています。このスタイルでは、並列に指定されたデータの値の集合は、選択さ れたデータ列のそのそれぞれの序列 (行番号) に対応する x 座標の場所に、 各々箱のグループとして固められて置かれます。よって、< n> 個のデータ列を 並列に指定した場合、最初の固まりは x=1 を中心とする < n> 個の箱の固まり からなり、その各々の高さは、その < n> データ列各々の最初 (1 行目) の値 が取られます。その後に少し空白 (gap) が空けられ、次に各データ列の次 (2 行目) の値に対応する箱の固まりが x=2 を中心として置かれます。以下同様 です。デフォルトの空白 (gap) 幅の 2 は、箱の固まり同士の間の空白が、箱 2 つの幅に等しいことを意味します。同じ列に対する箱は全て同じ色または同 じパターンで与えられます (set style fill 参照)。

箱の固まりそれぞれは、データファイルの 1 つの行から得られます。そのよ うな入力ファイルの各行の最初の項目が見出し (ラベル) でることは良くある ことです。その列にある見出し (ラベル) は、usingxticlabels オプ ションをつけることで、それに対応する箱の固まりの真下の x 軸に沿ったと ころに置くことができます。

errorbars スタイル は、各エントリに対して 2 列の入力を必要とする以外 は clustered スタイルにとても良く似ています。最初の列は clustered スタイルの場合と全く同様に箱の高さ (y の値) として使われます。2 つ目の 列は誤差の大きさとして扱われ、これは箱の天井に縦の誤差線を生成するのに 使われます。誤差線の見た目は、現在の set basrs の値と < linewidth> オ プション指定で制御できます。

積み上げ型のヒストグラムも 2 つの形式がサポートされています。それらは コマンド set style histogram {rowstacked| columnstacked} で選択できま す。これらのスタイルにおいて、選択された列のデータの値は積み上げられた 箱として集められます。デフォルトの積み上げモードは rowstacked です。

スタイル rowstacked は、まず最初に選択された列の各行の値を x 軸のそ れぞれの位置に配置します: 1 行目の値は x=1 の箱、2 行目のは x=2、以下 同様となります。2 番目以降に選択された列に対応する箱は、それらの上に積 み重ねられて行きます。そして結果として、x=1 にできる箱の積み重ねは、各 列の最初の値 (1 行目の値) からなり、x=2 の箱の積み重ねは各列の 2 行目 の値、などのようになります。同じ列に対する箱は全て同じ色または同じパタ ーンで与えられます (set style fill 参照)。

スタイル columnstacked も同様ですが、こちらは各箱の積み上げは (各行 のデータからではなく) 各列のデータからなります。最初に指定された列の各 行のデータが x=1 の箱の積み上げを生成し、2 番目に指定した列の各行のデ ータが x=2 の箱の積み上げ、などのようになります。このスタイルでは、各 箱の色は、各データ項目の (列番号ではなく) 行番号から決定されます。

箱の幅はコマンド set boxwidth で変更できます。 箱の塗りつぶしスタイルはコマンド set style fill で設定できます。

histograms は x 軸は常に x1 軸を使いますが、y 軸に関しては y1 軸か y2 軸かを選択できます。plot 命令が、histograms と他のスタイルの描画の両方 を含む場合、histogram でない方は、x1 軸を使うか x2 軸を使うかを選択で きます。

例:

複数の列を持つデータファイルを箱の固まり型 (clustered) のヒストグラム (デフォルトスタイル) で描画:


     set boxwidth 0.9 relative
     set style data histograms
     set style fill solid 1.0 border -1
     plot 'file.dat' using 2, '' using 4, '' using 6

これは、x 軸上の各整数値を中心とするそれぞれ 3 つの箱 (鉛直な棒) 毎の 固まりによる描画を生成します。入力ファイルの最初の列にラベルが含まれて いるならそれを、以下の少し変更したコマンドで x 軸に沿って配置できます。


     plot 'file.dat' using 2, '' using 4, '' using 6:xticlabels(1)

ファイルが、各データの測定値と誤差評価の両方を含んでいる場合、描画に誤 差線を追加することができます。以下のコマンドは誤差線を (y-< error> ) か ら (y+< error> ) に引き、その頭に箱と同じ幅の水平線をつけます。誤差線と 誤差線の端の線は、黒で線幅 2 で描画されます。


     set bars fullwidth
     set style histogram errorbars gap 2 lt -1 lw 2
     plot 'file.dat' using 2:3, '' using 4:5, '' using 6:7:xticlabels(1)

同じデータを行毎の積み上げ型 (rowstacked) のヒストグラムで描画:


     set style histogram rows
     plot 'file.dat' using 2, '' using 4, '' using 6:xtic(1)

これは、データファイルの 2,4,6 列目の値を高さに持つ 3 つの部分の積み上 げによる鉛直な棒からなる描画を生成します。

最後に以下のコマンド


     set style histogram columnstacked
     plot 'file.dat' using 2, '' using 4, '' using 6

は、3 つの鉛直な積み重ねの棒を生成します。x=1 にある棒は、データファイ ルの 2 列目の各行の値に対応する箱からなります。x=2 にある棒は、データ ファイルの 4 列目の各行の値に対応する箱から、x=3 には 6 列目の各行の値 に対する箱からなります。これは、gnuplot の通常の入力の縦、横の解釈を入 れ換えることになりますので、key タイトルや x 軸の目盛りの見出しの指定 も変更する必要があります。


     set style histogram columnstacked
     plot '' u 5:key(1)            # 1 列目を key タイトルに使用
     plot '' u 5 title columnhead  #



竹野茂治@新潟工科大学
2008年3月11日