xarrayのデータをループを用いて作図

xarrayのデータを2次元のパネルにループを用いて作図する方法について記載する。

方法

変数毎のプロパティを指定するためクラスを定義する。

class vprops(): 
    def __init__(self,vname,vmin,vmax): 
        self.vname=vname 
        self.vmin=vmin 
        self.vmax=vmax

変数毎のプロパティのリストを作成する。

vlist=[] 
vlist.append(vprops("SiO3",0.0,40.0)) 
vlist.append(vprops("NO3" ,0.0,20.0)) 
vlist.append(vprops("temp",0.0,30.0)) 
vlist.append(vprops("ALK" ,2000.0,2400.0))

プロットする。enumarateとnp.ndindexを併用することでで1次元と2次元の添え字をループする。xarrayのカラーバーのプロパティはxarray内在のプロパティでは設定出来ないため、add_colorbar=Falseとして別途設定する。

fig,ax=plt.subplots(2,2) 
im=[] 
for n,ind in enumerate(np.ndindex(2,2)): 
    im.append(fi0[vlist[n].vname].isel(s_rho=-1,ocean_time=-1).plot(cmap="jet",vmin=vlist[n].vmin,vmax=vlist[n].vmax,ax=ax[ind],add_colorbar=False)) 
    ax[ind].set_title("") 
    ax[ind].set_xlabel("") 
    ax[ind].set_ylabel("") 
    plt.colorbar(im[n],ax=ax[ind]) 
plt.tight_layout(h_pad=0,w_pad=0) 
plt.savefig("test.png",dpi=200,bbox_inches="tight")

作図例

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA