38 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 (81.66.4))。

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

errorbars スタイル は、各エントリに対して追加の入力列を必要とする以外は clustered スタイルにとても良く似ています。最初の列は、 clustered スタイルの場合と全く同様に箱の高さ (y の値) として保持され ます。

    2 列:       y yerr          # 線は y-yerr から y+err へ伸びる
    3 列:       y ymin yman     # 線は ymin から ymax へ伸びる

誤差線の見た目は、現在の set bars の値と < linewidth> オプション指定 で制御できます。

積み上げ型のヒストグラムも 2 つの形式がサポートされています。それらは コマンド set style histogram {rowstacked| columnstacked} で選択できま す。これらのスタイルにおいて、選択された列のデータの値は積み上げられた 箱として集められます。正の値は、y=0 から上の方へ積み上げられ、負の値は 下へ向かって積み上げられます。正の値と負の値が混じってい場合は、上向き と下向きの両方の積み上げが生成されます。デフォルトの積み上げモードは rowstacked です。

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

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

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

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

例:

Image figure_histclust
入力ファイルは、2, 4, 6, ... の列にデータ値を持ち、3, 5, 7, ... の列 に誤差評価を持つとします。以下の例は、2 列目、4 列目の値を箱の固まり型(clustered; デフォルトスタイル) のヒストグラムとして描画します。ここで は、plot コマンドで繰り返し (iteration) を使用していますので、任意の個 数のデータ列を一つのコマンドで処理できます。以下参照: iteration (67)


     set boxwidth 0.9 relative
     set style data histograms
     set style histogram cluster
     set style fill solid 1.0 border lt -1
     plot for [COL=2:4:2] 'file.dat' using COL

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


     plot for [COL=2:4:2] 'file.dat' using COL:xticlabels(1)

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


     set bars fullwidth
     set style fill solid 1 border lt -1
     set style histogram errorbars gap 2 lw 2
     plot for [COL=2:4:2] 'file.dat' using COL:COL+1

同じデータを行毎の積み上げ型 (rowstacked) のヒストグラムで描画する場合、 これまでとは違い、以下の例では繰り返しを使うのでなく、明示的に別々の列を指定します。


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

Image figure_histrows
これは、一つ一つの鉛直な棒が、データの一つの列に対応する描画を生成しま す。各棒は、2 つの部分の積み上げの形であり、それぞれの部分の高さが、デ ータファイルの 2 列目と 4 列目の値に対応します。

最後に以下のコマンド


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

Image figure_histcols
は、一つ一つがそれぞれデータ列に対応する、2 つの鉛直な積み重ねの棒を生 成します。x=1 にある棒は、データファイルの 2 列目の各行の値に対応する 箱からなります。x=2 にある棒は、データファイルの 4 列目の各行の値に対 応する箱からなります。これは、gnuplot の通常の入力の縦、横の解釈を入れ 換えることになりますので、key タイトルや x 軸の目盛りの見出しの指定も 変更する必要があります。以下のコメント部分を参照してください。


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

この 2 つの例は、全く同じデータ値を与えているのですが、異なる書式であ ることに注意してください。


Subsections
竹野茂治@新潟工科大学
2012年3月10日