例題演習GMT（２）１次元グラフと凡例

# １次元グラフの作図と凡例
GMTは習うより慣れろ。例題と課題でGMTの使い方を理解しよう。
[前回の１次元グラフ](https://qiita.com/s4s/items/27aceaef961d19d0200e)から、もう少し発展させ、凡例が使えるようにします。

## 例題
次のようなデータ（東京・大阪・名古屋の年平均気温）をGMT(5.4.3)で図化する。
なお、データは[気象庁HP](http://www.data.jma.go.jp/obd/stats/etrn/index.php)のデータを加工して作成した（実際の観測値を保証するものではありません）。

```temp2.txt
year	Tokyo	Osaka	Nagoya
2000	16.9	17.2	16.2
2001	16.5	17.1	16.0
2002	16.7	17.3	16.1
2003	16.0	16.9	15.7
2004	17.3	17.9	16.8
2005	16.2	17.0	15.7
2006	16.4	17.0	15.9
2007	17.0	17.6	16.6
2008	16.4	17.0	16.4
2009	16.7	17.1	16.5
2010	16.9	17.3	16.6
2011	16.5	16.9	16.1
2012	16.3	16.6	15.8
2013	17.1	17.1	16.4
2014	16.6	16.7	16.1
2015	16.4	17.2	16.6
2016	16.4	17.7	17.0
2017	15.8	16.8	15.9
```

GMTのスクリプト例を次に示す。

```shell:plot_exam02.sh
#!/bin/bash
#--------------------------------------------------
# plot for GMT5
# 1次元グラフ
#--------------------------------------------------

#----- 前処理・設定 ------------------------------

# GMTパラメーター
gmt gmtset FONT_ANNOT_PRIMARY 10p,Helvetica # 主目盛りのフォント
gmt gmtset FONT_LABEL         10p,Helvetica # 軸タイトルのフォント

# input
in01=temp2.txt                  # 入力ファイル
in01_h=1                        # ヘッダー行数
in01_c=0,1                      # 入力カラム(0始まり)

in02=$in01                      # 入力ファイル
in02_h=$in01                    # ヘッダー行数
in02_c=0,2                      # 入力カラム(0始まり)

# output
ps=plot_exam02.ps               # 出力psファイル

# グラフのサイズ
mp=X                            # 地図の投影法(X:xy, M:メルカトル図法)
gx=8                            # グラフの幅[cm]
gy=5                            # グラフの高さ[cm]
jopt=$mp${gx}c/${gy}c           # -Jオプション

# グラフの範囲(range)（-Rオプション）
rw=2000                         # x軸の最小値(west)
re=2018                         # x軸の最大値(east)
rs=15                           # y軸の最小値(south)
rn=18                           # y軸の最大値(north)
ropt=$rw/$re/$rs/$rn            # -Rオプション

# 軸・目盛りの設定
ti_x="Year"                                  # x軸タイトル
ti_y="Annual Average Temperature[@~\260@~C]" # y軸タイトル
tics_x=a5f1                     # x軸の目盛り(a=主,f=副)
grid_x=                         # x軸のグリッド(g)(*)
tics_y=a1f0.2                   # y軸の目盛り(a=主,f=副)
grid_y=g1                       # y軸のグリッド(g)(*)
axis=WeSn                   # 軸表示（大文字：軸＋目盛り、小文字：軸）

# 線の設定
line01=0.8p,black               # 線：太さ,色,線種
line02=0.8p,blue                # 線：太さ,色,線種

# シンボルの設定
st01=c                          # シンボルの種類(c,s,d,t,+,x等)
ss01=0.15c                      # シンボルのサイズ
sc01=-                          # シンボルの色(*)
sl01=$line01                    # シンボルの線(太さ,色,線種)
st02=s                          # シンボルの種類(c,s,d,t,+,x等)
ss02=0.20c                      # シンボルのサイズ
sc02=-                          # シンボルの色(*)
sl02=$line02                    # シンボルの線(太さ,色,線種)

# 凡例(pslegend)の設定
pl_D_j=TR                       # 凡例枠の配置(縦:TMB, 横:LCR)
pl_D_r=TL                       # 凡例枠の配置に合わせるポジション
pl_D_o=0.5c/0c                  # 凡例枠のオフセット(x/y)
pl_D_s=2.8c/1.3c                # 凡例枠のサイズ(x/y)
pl_D_l=1.5                      # 凡例の行間隔（比率,default=1.1）
pl_D=j$pl_D_j+j$pl_D_r+o$pl_D_o+w$pl_D_s+l$pl_D_l # 凡例枠のまとめ
pl_F_p=+p0.8p,black             # 凡例枠の線(*)
pl_F_g=+gwhite                  # 凡例枠の塗りつぶし色(*)
pl_F_s=+s                       # 凡例枠の影(*)
pl_F_r=+r                       # 凡例枠の角を丸くする(*)
pl_F=-F${pl_F_p}${pl_F_g}${pl_F_s}${pl_F_s}${pl_F_r} # 凡例枠の装飾まとめ(*)
pl_font=9p,Helvetica            # 凡例のフォント
pl_clms=1                       # 凡例の列数(または列の相対的なサイズ)
pl_off1=0.6c                    # 凡例のオフセット(1)記号までの距離
pl_len=1.0c                     # 凡例の線の長さ
pl_off2=1.3c                    # 凡例のオフセット(2)説明文までの距離
pl_text01="Tokyo"               # 凡例の説明文(*)
pl_text02="Osaka"               # 凡例の説明文(*)

# 画像変換(psconvert)の設定
pc_fmt=g            # g=png, b=bmp, j=jpg, t=tiff, e=eps, f=PDF, s=SVG
pc_res=300          # 画像の解像度(DPI)
pc_mgn=0.1c         # グラフ外側のマージン
pc_aa=2             # アンチエイリアシングの設定(1,2,4)

#----- plot ------------------------------

echo "plot $ps"

# basemap(グリッド線のみ)
gmt psbasemap -J$jopt -R$ropt -Bx$grid_x -By$grid_y -B+n -P -K > $ps

# psxy(line)
gmt psxy $in01 -h$in01_h -i$in01_c -J -R -W$line01 -K -O >> $ps
# psxy(symbol)
gmt psxy $in01 -h$in01_h -i$in01_c -J -R -S$st01$ss01 -G$sc01 -W$sl01 -K -O >> $ps

# psxy(line)
gmt psxy $in02 -h$in02_h -i$in02_c -J -R -W$line02 -K -O >> $ps
# psxy(symbol)
gmt psxy $in02 -h$in02_h -i$in02_c -J -R -S$st02$ss02 -G$sc02 -W$sl02 -K -O >> $ps


# 凡例(line)
gmt pslegend -R -J -D$pl_D $pl_F --FONT_ANNOT_PRIMARY=$pl_font -K -O << EOF >> $ps
#----------------------------------------------------------------------
# N 列数(または列の相対的なサイズ)
  N $pl_clms
#----------------------------------------------------------------------
# S offset1  symbol size    fill  line    offset2  text
  S $pl_off1 -      $pl_len -     $line01 $pl_off2 $pl_text01
  S $pl_off1 -      $pl_len -     $line02 $pl_off2 $pl_text02
EOF

# 凡例(symbol)
pl_F=""                         # 凡例枠の装飾まとめ(*)
pl_text01=""                    # 凡例の説明文(*)
pl_text02=""                    # 凡例の説明文(*)
gmt pslegend -R -J -D$pl_D $pl_F --FONT_ANNOT_PRIMARY=$pl_font -K -O << EOF >> $ps
#----------------------------------------------------------------------
# N 列数 (または列の相対的なサイズ)
  N $ps_clms
#----------------------------------------------------------------------
# S offset1  symbol size    fill  line    offset2  text
  S $pl_off1 $st01  $ss01   $sc01 $sl01   $pl_off2 $pl_text01
  S $pl_off1 $st02  $ss02   $sc02 $sl02   $pl_off2 $pl_text02
EOF

# basemap(枠線)
gmt psbasemap -J -R -Bx$tics_x+l"$ti_x" -By$tics_y+l"$ti_y" -B$axis -O >> $ps

#----- 後処理 ------------------------------

# png変換
gmt psconvert -A$pc_mgn -E$pc_res -T$pc_fmt -Qt$pc_aa -Qg$pc_aa $ps
```

作成されたグラフ。
<img src="https://qiita-image-store.s3.amazonaws.com/0/195213/c795f7b1-8101-2f1a-ae42-f6671dcc3e61.png" width=500>

## 解説
### ファイルの入力行の選択
+ psxyなどで、ファイルの入力行を選択する場合は、-iオプションで行う。
+ 行番号は0始まりなので、1行目と3行目のデータでプロットする場合は、"-i0,2"と指定する。

### pslegend
+ 凡例を作成するコマンド（[本家のマニュアル](http://gmt.soest.hawaii.edu/doc/5.4.3/pslegend.html)）。
+ 本家のマニュアルは非常に分かりづらい…。今回の例では一般的な凡例の書き方を示したので、コピペして使いまわしてもらえれば良いと思います。
+ 「pl_pos=TR」のTRはで右上(Top Right)のこと。グラフ（枠線）の右上に凡例を配置することを意味する。グラフの数値で指定することも可能だが、凡例ではあまり使わない。
+ 「pl_ref=TL」のTLは左上(Top Left)のこと。凡例を右上に配置としたが、その場所に凡例のどの場所を合わせるのかを指定する。つまり、グラフの右上に凡例の左上が来るように配置されるという意味になる。
+ pslegendは線とシンボルを同時にプロットすることができない。線とシンボルを重ねるにはpslegendを2回実行する必要がある。


## 課題
### 課題(1)
以下のようなグラフを作成せよ。
変更点：名古屋データの追加。赤線＋三角シンボル。

<img src="https://qiita-image-store.s3.amazonaws.com/0/195213/09e6eab0-b848-e556-dc19-d3276a33dde0.png" width=500>


### 課題(2)
以下のようなグラフを作成せよ。
変更点：グラフの大きさ（横10cm）。凡例の位置（グラフ上部に横一列）。

<img src="https://qiita-image-store.s3.amazonaws.com/0/195213/cf2bb3a7-fe8b-a47e-8827-3ec56c8ded03.png" width=500>



## 解答
### 課題(1)
+ 名古屋のデータはファイルの4列目にあるので、それを使ってプロットする。スクリプトを理解すれば、データの追加は難しくないはず。
+ 凡例が１行追加されるので、凡例のサイズを大きくする。

```shell:plot_assign02-01.sh
#!/bin/bash
#--------------------------------------------------
# plot for GMT5
# 1次元グラフ
#--------------------------------------------------

#----- 前処理・設定 ------------------------------

# GMTパラメーター
gmt gmtset FONT_ANNOT_PRIMARY 10p,Helvetica # 主目盛りのフォント
gmt gmtset FONT_LABEL         10p,Helvetica # 軸タイトルのフォント

# input
in01=temp2.txt                  # 入力ファイル
in01_h=1                        # ヘッダー行数
in01_c=0,1                      # 入力カラム(0始まり)

in02=$in01                      # 入力ファイル
in02_h=$in01                    # ヘッダー行数
in02_c=0,2                      # 入力カラム(0始まり)

in03=$in01                      # 入力ファイル
in03_h=$in01                    # ヘッダー行数
in03_c=0,3                      # 入力カラム(0始まり)

# output
ps=plot_assign02-01.ps               # 出力psファイル

# グラフのサイズ
mp=X                            # 地図の投影法(X:xy, M:メルカトル図法)
gx=8                            # グラフの幅[cm]
gy=5                            # グラフの高さ[cm]
jopt=$mp${gx}c/${gy}c           # -Jオプション

# グラフの範囲(range)（-Rオプション）
rw=2000                         # x軸の最小値(west)
re=2018                         # x軸の最大値(east)
rs=15                           # y軸の最小値(south)
rn=18                           # y軸の最大値(north)
ropt=$rw/$re/$rs/$rn            # -Rオプション

# 軸・目盛りの設定
ti_x="Year"                                  # x軸タイトル
ti_y="Annual Average Temperature[@~\260@~C]" # y軸タイトル
tics_x=a5f1                     # x軸の目盛り(a=主,f=副)
grid_x=                         # x軸のグリッド(g)(*)
tics_y=a1f0.2                   # y軸の目盛り(a=主,f=副)
grid_y=g1                       # y軸のグリッド(g)(*)
axis=WeSn                   # 軸表示（大文字：軸＋目盛り、小文字：軸）

# 線の設定
line01=0.8p,black               # 線：太さ,色,線種
line02=0.8p,blue                # 線：太さ,色,線種
line03=0.8p,red                 # 線：太さ,色,線種

# シンボルの設定
st01=c                          # シンボルの種類(c,s,d,t,+,x等)
ss01=0.15c                      # シンボルのサイズ
sc01=-                          # シンボルの色(*)
sl01=$line01                    # シンボルの線(太さ,色,線種)
st02=s                          # シンボルの種類(c,s,d,t,+,x等)
ss02=0.20c                      # シンボルのサイズ
sc02=-                          # シンボルの色(*)
sl02=$line02                    # シンボルの線(太さ,色,線種)
st03=t                          # シンボルの種類(c,s,d,t,+,x等)
ss03=0.20c                      # シンボルのサイズ
sc03=-                          # シンボルの色(*)
sl03=$line03                    # シンボルの線(太さ,色,線種)

# 凡例(pslegend)の設定
pl_D_j=TR                       # 凡例枠の配置(縦:TMB, 横:LCR)
pl_D_r=TL                       # 凡例枠の配置に合わせるポジション
pl_D_o=0.5c/0c                  # 凡例枠のオフセット(x/y)
pl_D_s=2.8c/1.8c                # 凡例枠のサイズ(x/y)
pl_D_l=1.5                      # 凡例の行間隔（比率,default=1.1）
pl_D=j$pl_D_j+j$pl_D_r+o$pl_D_o+w$pl_D_s+l$pl_D_l # 凡例枠のまとめ
pl_F_p=+p0.8p,black             # 凡例枠の線(*)
pl_F_g=+gwhite                  # 凡例枠の塗りつぶし色(*)
pl_F_s=+s                       # 凡例枠の影(*)
pl_F_r=+r                       # 凡例枠の角を丸くする(*)
pl_F=-F${pl_F_p}${pl_F_g}${pl_F_s}${pl_F_s}${pl_F_r} # 凡例枠の装飾まとめ(*)
pl_font=9p,Helvetica            # 凡例のフォント
pl_clms=1                       # 凡例の列数(または列の相対的なサイズ)
pl_off1=0.6c                    # 凡例のオフセット(1)記号までの距離
pl_len=1.0c                     # 凡例の線の長さ
pl_off2=1.3c                    # 凡例のオフセット(2)説明文までの距離
pl_text01="Tokyo"               # 凡例の説明文(*)
pl_text02="Osaka"               # 凡例の説明文(*)
pl_text03="Nagoya"              # 凡例の説明文(*)

# 画像変換(psconvert)の設定
pc_fmt=g            # g=png, b=bmp, j=jpg, t=tiff, e=eps, f=PDF, s=SVG
pc_res=300          # 画像の解像度(DPI)
pc_mgn=0.1c         # グラフ外側のマージン
pc_aa=2             # アンチエイリアシングの設定(1,2,4)

#----- plot ------------------------------

echo "plot $ps"

# basemap(グリッド線のみ)
gmt psbasemap -JX${gx}c/${gy}c -R$rw/$re/$rs/$rn -Bx$grid_x -By$grid_y -B+n -P -K > $ps

# psxy(line)
gmt psxy $in01 -h$in01_h -i$in01_c -J -R -W$line01 -K -O >> $ps
# psxy(symbol)
gmt psxy $in01 -h$in01_h -i$in01_c -J -R -S$st01$ss01 -G$sc01 -W$sl01 -K -O >> $ps

# psxy(line)
gmt psxy $in02 -h$in02_h -i$in02_c -J -R -W$line02 -K -O >> $ps
# psxy(symbol)
gmt psxy $in02 -h$in02_h -i$in02_c -J -R -S$st02$ss02 -G$sc02 -W$sl02 -K -O >> $ps

# psxy(line)
gmt psxy $in03 -h$in03_h -i$in03_c -J -R -W$line03 -K -O >> $ps
# psxy(symbol)
gmt psxy $in03 -h$in03_h -i$in03_c -J -R -S$st03$ss03 -G$sc03 -W$sl03 -K -O >> $ps

# 凡例(line)
gmt pslegend -R -J -D$pl_D $pl_F --FONT_ANNOT_PRIMARY=$pl_font -K -O << EOF >> $ps
#----------------------------------------------------------------------
# N 列数(または列の相対的なサイズ)
  N $ps_clms
#----------------------------------------------------------------------
# S offset1  symbol size    fill  line    offset2  text
  S $pl_off1 -      $pl_len -     $line01 $pl_off2 $pl_text01
  S $pl_off1 -      $pl_len -     $line02 $pl_off2 $pl_text02
  S $pl_off1 -      $pl_len -     $line03 $pl_off2 $pl_text03
EOF

# 凡例(symbol)
pl_F=""                         # 凡例枠の装飾まとめ(*)
pl_text01=""                    # 凡例の説明文(*)
pl_text02=""                    # 凡例の説明文(*)
pl_text03=""                    # 凡例の説明文(*)
gmt pslegend -R -J -D$pl_D $pl_F --FONT_ANNOT_PRIMARY=$pl_font -K -O << EOF >> $ps
#----------------------------------------------------------------------
# N 列数 (または列の相対的なサイズ)
  N $ps_clms
#----------------------------------------------------------------------
# S offset1  symbol size    fill  line    offset2  text
  S $pl_off1 $st01  $ss01   $sc01 $sl01   $pl_off2 $pl_text01
  S $pl_off1 $st02  $ss02   $sc02 $sl02   $pl_off2 $pl_text02
  S $pl_off1 $st03  $ss03   $sc03 $sl03   $pl_off2 $pl_text03
EOF

# basemap(枠線)
gmt psbasemap -J -R -Bx$tics_x+l"$ti_x" -By$tics_y+l"$ti_y" -B$axis -O >> $ps

#----- 後処理 ------------------------------

# png変換
gmt psconvert -A$pc_mgn -E$pc_res -T$pc_fmt -Qt$pc_aa -Qg$pc_aa $ps
```

### 課題(2)
+ 凡例を3列にするには、「ps_clms=3」にする。あるいは、名古屋を少し大きくするには、「ps_clms="1 1 1.1"」としても良い（3列目が他より10%大きくなる）。
+ 凡例のオフセット（変数：pl_offset）は内側にずれるようにオフセットされるので、グラフの外側に凡例を出すには、オフセットをマイナスにする。
+ 凡例枠の装飾をなくすので、「変数：pl_F」をコメントアウトする。

```shell:plot_assign02-02.sh
#!/bin/bash
#--------------------------------------------------
# plot for GMT5
# 1次元グラフ
#--------------------------------------------------

#----- 前処理・設定 ------------------------------

# GMTパラメーター
gmt gmtset FONT_ANNOT_PRIMARY 10p,Helvetica # 主目盛りのフォント
gmt gmtset FONT_LABEL         10p,Helvetica # 軸タイトルのフォント

# input
in01=temp2.txt                  # 入力ファイル
in01_h=1                        # ヘッダー行数
in01_c=0,1                      # 入力カラム(0始まり)

in02=$in01                      # 入力ファイル
in02_h=$in01                    # ヘッダー行数
in02_c=0,2                      # 入力カラム(0始まり)

in03=$in01                      # 入力ファイル
in03_h=$in01                    # ヘッダー行数
in03_c=0,3                      # 入力カラム(0始まり)

# output
ps=plot_assign02-02.ps               # 出力psファイル

# グラフのサイズ
mp=X                            # 地図の投影法(X:xy, M:メルカトル図法)
gx=10                           # グラフの幅[cm]
gy=5                            # グラフの高さ[cm]
jopt=$mp${gx}c/${gy}c           # -Jオプション

# グラフの範囲(range)（-Rオプション）
rw=2000                         # x軸の最小値(west)
re=2018                         # x軸の最大値(east)
rs=15                           # y軸の最小値(south)
rn=18                           # y軸の最大値(north)
ropt=$rw/$re/$rs/$rn            # -Rオプション

# 軸・目盛りの設定
ti_x="Year"                                  # x軸タイトル
ti_y="Annual Average Temperature[@~\260@~C]" # y軸タイトル
tics_x=a5f1                     # x軸の目盛り(a=主,f=副)
grid_x=                         # x軸のグリッド(g)(*)
tics_y=a1f0.2                   # y軸の目盛り(a=主,f=副)
grid_y=g1                       # y軸のグリッド(g)(*)
axis=WeSn                   # 軸表示（大文字：軸＋目盛り、小文字：軸）

# 線の設定
line01=0.8p,black               # 線：太さ,色,線種
line02=0.8p,blue                # 線：太さ,色,線種
line03=0.8p,red                 # 線：太さ,色,線種

# シンボルの設定
st01=c                          # シンボルの種類(c,s,d,t,+,x等)
ss01=0.15c                      # シンボルのサイズ
sc01=-                          # シンボルの色(*)
sl01=$line01                    # シンボルの線(太さ,色,線種)
st02=s                          # シンボルの種類(c,s,d,t,+,x等)
ss02=0.20c                      # シンボルのサイズ
sc02=-                          # シンボルの色(*)
sl02=$line02                    # シンボルの線(太さ,色,線種)
st03=t                          # シンボルの種類(c,s,d,t,+,x等)
ss03=0.20c                      # シンボルのサイズ
sc03=-                          # シンボルの色(*)
sl03=$line03                    # シンボルの線(太さ,色,線種)

# 凡例(pslegend)の設定
pl_D_j=TL                       # 凡例枠の配置(縦:TMB, 横:LCR)
pl_D_r=TL                       # 凡例枠の配置に合わせるポジション
pl_D_o=0c/-1c                   # 凡例枠のオフセット(x/y)
pl_D_s=${gx}c/0.8c              # 凡例枠のサイズ(x/y)
pl_D_l=1.5                      # 凡例の行間隔（比率,default=1.1）
pl_D=j$pl_D_j+j$pl_D_r+o$pl_D_o+w$pl_D_s+l$pl_D_l # 凡例枠のまとめ
pl_F_p=+p0.8p,black             # 凡例枠の線(*)
pl_F_g=+gwhite                  # 凡例枠の塗りつぶし色(*)
pl_F_s=+s                       # 凡例枠の影(*)
pl_F_r=+r                       # 凡例枠の角を丸くする(*)
#pl_F=-F${pl_F_p}${pl_F_g}${pl_F_s}${pl_F_s}${pl_F_r} # 凡例枠の装飾まとめ(*)
pl_font=9p,Helvetica            # 凡例のフォント
pl_clms=3                       # 凡例の列数(または列の相対的なサイズ)
pl_off1=0.6c                    # 凡例のオフセット(1)記号までの距離
pl_len=1.0c                     # 凡例の線の長さ
pl_off2=1.3c                    # 凡例のオフセット(2)説明文までの距離
pl_text01="Tokyo"               # 凡例の説明文(*)
pl_text02="Osaka"               # 凡例の説明文(*)
pl_text03="Nagoya"              # 凡例の説明文(*)

# 画像変換(psconvert)の設定
pc_fmt=g            # g=png, b=bmp, j=jpg, t=tiff, e=eps, f=PDF, s=SVG
pc_res=300          # 画像の解像度(DPI)
pc_mgn=0.1c         # グラフ外側のマージン
pc_aa=2             # アンチエイリアシングの設定(1,2,4)

#----- plot ------------------------------

echo "plot $ps"

# basemap(グリッド線のみ)
gmt psbasemap -JX${gx}c/${gy}c -R$rw/$re/$rs/$rn -Bx$grid_x -By$grid_y -B+n -P -K > $ps

# psxy(line)
gmt psxy $in01 -h$in01_h -i$in01_c -J -R -W$line01 -K -O >> $ps
# psxy(symbol)
gmt psxy $in01 -h$in01_h -i$in01_c -J -R -S$st01$ss01 -G$sc01 -W$sl01 -K -O >> $ps

# psxy(line)
gmt psxy $in02 -h$in02_h -i$in02_c -J -R -W$line02 -K -O >> $ps
# psxy(symbol)
gmt psxy $in02 -h$in02_h -i$in02_c -J -R -S$st02$ss02 -G$sc02 -W$sl02 -K -O >> $ps

# psxy(line)
gmt psxy $in03 -h$in03_h -i$in03_c -J -R -W$line03 -K -O >> $ps
# psxy(symbol)
gmt psxy $in03 -h$in03_h -i$in03_c -J -R -S$st03$ss03 -G$sc03 -W$sl03 -K -O >> $ps

# 凡例(line)
gmt pslegend -R -J -D$pl_D $pl_F --FONT_ANNOT_PRIMARY=$pl_font -K -O << EOF >> $ps
#----------------------------------------------------------------------
# N 列数(または列の相対的なサイズ)
  N $pl_clms
#----------------------------------------------------------------------
# S offset1  symbol size    fill  line    offset2  text
  S $pl_off1 -      $pl_len -     $line01 $pl_off2 $pl_text01
  S $pl_off1 -      $pl_len -     $line02 $pl_off2 $pl_text02
  S $pl_off1 -      $pl_len -     $line03 $pl_off2 $pl_text03
EOF

# 凡例(symbol)
pl_F=""                         # 凡例枠の装飾まとめ(*)
pl_text01=""                    # 凡例の説明文(*)
pl_text02=""                    # 凡例の説明文(*)
pl_text03=""                    # 凡例の説明文(*)
gmt pslegend -R -J -D$pl_D $pl_F --FONT_ANNOT_PRIMARY=$pl_font -K -O << EOF >> $ps
#----------------------------------------------------------------------
# N 列数 (または列の相対的なサイズ)
  N $pl_clms
#----------------------------------------------------------------------
# S offset1  symbol size    fill  line    offset2  text
  S $pl_off1 $st01  $ss01   $sc01 $sl01   $pl_off2 $pl_text01
  S $pl_off1 $st02  $ss02   $sc02 $sl02   $pl_off2 $pl_text02
  S $pl_off1 $st03  $ss03   $sc03 $sl03   $pl_off2 $pl_text03
EOF

# basemap(枠線)
gmt psbasemap -J -R -Bx$tics_x+l"$ti_x" -By$tics_y+l"$ti_y" -B$axis -O >> $ps

#----- 後処理 ------------------------------

# png変換
gmt psconvert -A$pc_mgn -E$pc_res -T$pc_fmt -Qt$pc_aa -Qg$pc_aa $ps
```