国立研究開発法人防災科学技術研究所 水・土砂防災研究部門
国立研究開発法人防災科学技術研究所 水・土砂防災研究部門
トップ 一覧 検索 ヘルプ RSS ログイン

Python描画編(matplotlibのみを利用)


mapplotlibのインストール

anaconda3-2020.11 をpyenvでインストールした時点で、デフォルトで、mapplotlibは
インストールされています。確認するためには、

conda install --list | grep mapplotlib

もしインストールする必要があれば、

conda install mapplotlib

とすればよい。

mapplotlibについては非常に多くのドキュメントがあります。
(参考HP)
(本家)https://matplotlib.org/
https://ebcrpa.jamstec.go.jp/~yyousuke/matplotlib/index.html
https://qiita.com/nkay/items/d1eb91e33b9d6469ef51
https://techacademy.jp/magazine/17472

非常に参考になったのは、
https://qiita.com/skotaro/items/08dc0b8c5704c94eafb9
です。

従って、ここでは気象学で必要な2次元平面の図示に特化して説明します。

mapplotlibの使い方

mapplotlibはnumpy を利用しています。
まずは2次元断面図を表示するサンプルを示します。

  サンプルプログラム

import numpy as np
import matplotlib as mpl
#mpl.use('Agg')
import matplotlib.pyplot as plt
def draw_XY(data,lon,lat):
   # setting x-, y- axis as 2-dimensional array
   NX,NY = np.meshgrid(lon,lat)
   # definition for color scale range 
   norm  = mpl.colors.TwoSlopeNorm(vcenter=80.0, vmin=0.0, vmax=100.0)
   # start to make figure with size-setting
   fig   =plt.figure()
   # plot 2-dimensional figure
   plt.pcolormesh(NX, NY, data, shading='auto', cmap='jet', norm=norm)
   # add color bar
   plt.colorbar() 
   # add lavel for x- and y- axis
   plt.xlabel('Longitude [deg.]')
   plt.ylabel('Latitude [deg.]')
   # add title
   plt.title("RH distribution")
   # show the figure
   plt.show()
   # save th figure
   plt.savefig('image.png')

  解説

1つ目のuse mapplotlib as mpl とすることで、mpl.(メソッドなど)を設定することで、
図全体の設定を行うようです。colorsで色設定を行うなど、図の基本的な設定を行います。
メソッドなど 解説
colors カラ-の設定
colorbar カラーバーの色の設定
line 線の太さなどを設定
(参考HP)
https://pythondatascience.plavox.info/matplotlib/%E8%89%B2%E3%81%AE%E5%90%8D%E5%89%8D

norm  = mpl.colors.TwoSlopeNorm(vcenter=80.0, vmin=0.0, vmax=100.0)

は、最小値0から最大値100までの範囲で、80を中心にしたレベル化したスケールを作成

NX,NY = np.meshgrid(lon,lat)

は、numpyの関数meshgridを使って、LONの2次元配列、LATの2次元配列を作成

  fig   =plt.figure()

で作図を開始。これだけだと枠しかない。

  plt.pcolormesh(NX, NY, data, shading='auto', cmap='jet', norm=norm)

で2次元を作図。shadingは、格子点の定義について、cmapはカラースケールの色について、
normが値のスケールについて,NX,NY,dataがX座標(2次元配列)、Y座標(2次元配列)、data(2次元配列)を示す。

plt.colorbar() 

でカラーバーを自動的に追加

plt.xlabel('Longitude [deg.]')

でX軸のラベルを作成

  plt.title("RH distribution")

で図のタイトルを設定

plt.show()

で図を画面に表示

plt.savefig('image.png')

で図をファイルとして保存