📊

GMT6.5のサンプルスクリプトを試す11~plot -Sb -SB~

2025/01/25に公開

はじめに

-Sbまたは-SBを使うことで棒グラフを描ける。
-Sbが垂直方向、-SBが水平方向に延びる形の棒グラフになる。

-Sb 鉛直(縦)棒グラフ

echo 1 1 > t.txt
echo 2 2 >> t.txt

gmt begin Sb1 png
gmt plot -R0/3.5/0/3.5 -JX6/3 -Ba1g1 -BSW -Sb1   -W0.1 -Glightblue t.txt
echo 1 2 | gmt plot -R0/3.5/0/3.5 -JX6/3 -Sb1+b1 -W0.1 -Glightblue -X6.5 -BSW -Ba1g1
echo 2 2 | gmt plot -R0/3.5/0/3.5 -JX6/3 -Sb1+B1 -W0.1 -Glightblue
gmt end

-Sb鉛直(縦)棒グラフ
-Sbの後の数字で棒グラフの幅を指定できる。
垂直方向の棒グラフなら、入力する数値は普通にx,yと書けばよい。

-Sb1に+bを付けると、+bの後に指定したY座標から描画される。
上の例では1,2で入力しているが、+b1としているので1,1から上に1だけの大きさになっている。
つまり、Y座標1より下は表示されない。

-Sbに+Bを付けると、+Bの後ろに指定したY座標から棒グラフが描画される。
上の例では2,2で入力しているが、+B1としているので2,1から上に2の長さの棒が描かれている。
つまり、普通の積み上げグラフを描くには--Sb/-SBに+Bを付けるとよいだろう。

積み上げ俸グラフと集合俸グラフ

さらに+i,+v,+sのオプションもあるのでためしてみよう。
これらのオプションは複数のデータを同時に示したり比較できるようにするために使える。
+vと+iにはデータ個数の情報も必要になる。

+v:棒グラフを重ねる(数字が順になっている必要がある。そうしないと隠れる)
+i:積み上げ棒グラフ
+s:横に並べる(集合棒グラフ)

ついでに-SBで水平方向の棒グラフも描いてみる。
ただし、垂直用と水平用で入力するデータの形式が異なるので注意が必要。

#-Sb鉛直棒グラフ用
cat << EOF > t2.txt
1 0.2 0.4 0.6 0.8 1   #X, y1, y2, y3….
2 0.3 0.6 0.9 1.2 1.5    # X, y1, y2, y3….
EOF

#-SB 水平棒グラフ用
cat << EOF > t3.txt
0.2 1 0.4 0.6 0.8 1.0 #x1, Y, x2, x3…
0.3 2 0.6 0.9 1.2 1.5  # x1, Y, x2, x3…
EOF

水平用はX方向に棒を延ばすため、Y座標が必ず2番目に来る必要があるため、データの入れ方に少し違和感があるが...まぁ仕方ない。
一応、両方とも同じ意味を示す。
それぞれ、0.2ずつ、0.3ずつ数を大きくしている。

複数の棒グラフを並べる際に、-Cで色を指定できる。
この色はmakecptから任意のカラーパレットで作成する。
色の指定はn番目で指定されるので、0~n-1(今回はn=5個なので4)でカラーパレットを作成する。
Nは整数値なので0.1刻みにする必要はないが、個人的に0.1刻みで5までの範囲でカラーパレットを作ったときの色合いが好きだったので、少し変なカラーパレットを作っている。これはお好みで。

gmt begin Sb2 png
gmt makecpt -Cseis -T0/5/0.1 -Z
gmt plot -R0/3/0/5 -JX3/3 -Ba1g1 -BSW -Sb0.5+v5   -W0.1 -C t2.txt #➀
gmt plot -R0/3/0/5 -JX3/3 -Ba1g1 -BSW -Sb0.5+i5   -W0.1 -C t2.txt -X3.5 #➁
gmt plot -R0/3/0/5 -JX3/3 -Ba1g1 -BSW -Sb0.5+v5+s -W0.1 -C t2.txt -X3.5 #➂
gmt plot -R0/3/0/5 -JX3/3 -Ba1g1 -BSW -Sb0.5+i5+s -W0.1 -C t2.txt -X3.5  #➃
gmt plot -R0/5/0/3 -JX3/3 -Ba1g1 -BSW -SB0.5+v5   -W0.1 -C t3.txt -Y-3.5 -X-10.5 #➄
gmt plot -R0/5/0/3 -JX3/3 -Ba1g1 -BSW -SB0.5+i5   -W0.1 -C t3.txt -X3.5 #➅
gmt plot -R0/5/0/3 -JX3/3 -Ba1g1 -BSW -SB0.5+v5+s -W0.1 -C t3.txt -X3.5 #➆
gmt plot -R0/5/0/3 -JX3/3 -Ba1g1 -BSW -SB0.5+i5+s -W0.1 -C t3.txt -X3.5 #➇
gmt end

積み上げ棒グラフ

  • ➀➄はグラフをすべて重ねた状態
  • ➁➅はごく普通の累積グラフ
  • ➂➆は+sを付けることで、グラフを並べて表示
  • ➃➇は累積させたものを並べて表示

➁➅の累積表示と、➂➆の並べて表示はよく使うと思われる。
➀➄をするならば➂➆で描いたほうが分かりやすいだろう。
➃➇については、もはや別のデータになっているのでやらないほうがいい。➁➅にしないと勘違いされるだろう。

まとめ

  • -Sb/-SBでは+vオプションは単体で使うより+sと一緒に使ったほうがよい。
  • +iと+sは同時に使ってはいけない。勘違いされる。

Discussion