pythonのmatplotlibモジュールを使えば線グラフやヒストグラム、散布図など基本的な
図示がMATLABのような形でできるようになる。
matplotlibの機能を補強する事ができるmpl_toolkitsモジュールのひとつとして、
Basemapというモジュールがあり、これを使うとGMTのように地図投影法の指定や
海岸線のプロットなどが可能になる。(ただし少々記述が面倒である)
詳細なDocumentationは公式Webページを参照してもらえれば良いが、ここでは
簡単な使い方を紹介する。
(URL: https://matplotlib.org/basemap/https://matplotlib.org/basemap/)
例えばいまひとつの点データとして緯度経度の値が入ったリスト
pos = [lon, lat]
があるとする。
地図投影法はランベルト正角円錐図法"lcc"としている(その他投影法も選択可能)。
これを海岸線付きで図示したい場合、
>> import matplotlib.pyplot as plt
>> from mpl_toolkits.basemap import Basemap
>>
>> lon = xxx # 経度の値
>> lat = xxx # 緯度の値
>> pos = [lon, lat]
>>
>> ns1, ns2 = xxx, xxx # 図の南限、北限
>> ew1, ew2 = xxx, xxx # 図の西限、東限
>> # lat_0, lat_1 : 標準緯度1, 2
>> # lon_0 : 中央経線の経度
>> # resolution : 海岸線の解像度
(GMTのpscoastで使う海岸線データと同じ表記、"f"が最も詳細だが処理が重い)
>>
>> plt.figure(1)
>> m = Basemap(projection='lcc', llcrnrlon=ew1, \
urcrnrlon=ew2, llcrnrlat=ns1, urcrnrlat=ns2, \
resolution='i', lat_0=25, lat_1=45, lon_0=140.0)
>> x, y = m(lon, lat) # データの緯度経度の値を図のx軸・y軸の値に変換
>> m.scatter([lon], [lat], s=S, c=C)
>> m.drawcoastlines(linewidth=lw, color='k')
>> m.drawmapboundary(fill_color='aqua')
# 海洋上の色を指定可能、空欄にすれば色はつかない
>> m.drawparallels(np.arange(-90.,120.,5),labels=[1,0,0,0])
# 緯度の座標軸の設定, "labels"は枠のどの位置に軸を付けるかの指定
>> m.drawmeridians(np.arange(-180.,180.,5),labels=[0,0,0,1]) # 経度の座標軸の設定
>>
>> plt.savefig('output.png', format='png', dpi=200)
# 図の保存。PNG形式の場合の例。"dpi"は図の解像度
>>
>> plt.show() # 図の表示
ここでは例としてscatterを用いたが、他にplot, pcolormeshなども使用可能。