JupyterLabのテンプレート

JupyterLabでノートを作成する際に頻繁に記述するコードについて記載します。

フォントとmatplotlibの設定

%matplotlib inline
plt.style.use("helv")
  • plt.style.use(“helv”)はフォントに「Helvetica」を使用する設定です。別途設定が必要なのでこのまま書いただけでは動きません。
import matplotlib.pylab as pylab 
params={'legend.fontsize':8, 
        'figure.figsize' :(6, 4), 
        'figure.dpi'     :300, 
        'axes.labelsize' :8, 
        'axes.titlesize' :8, 
        'xtick.labelsize':8, 
        'ytick.labelsize':8} 
pylab.rcParams.update(params)
from matplotlib import rcParams
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['Hiragino Maru Gothic Pro']
rcParams["font.size"]=10

pyromsの設定

import os
import pyroms
os.environ["PYROMS_GRIDID_FILE"] = "gridid.txt" 
grd_s=pyroms.grid.get_ROMS_grid('h010_l045_v001_s') 
grd_z=pyroms.grid.get_ROMS_grid('h010_l045_v001_z')

Cartopyの設定

import cartopy 
import cartopy.crs as ccrs
import cartopy.feature as cfeature

ノート個別の設定

nbname="220829_notebookname" 
datdir="../data/{0}".format(nbname) 
figdir="../figures/{0}".format(nbname) 
%mkdir -p $datdir 
%mkdir -p $figdir

netCDFファイルへの属性付与

ds1.attrs=dict(nbname=nbname)

マップ

fig,ax=plt.subplots(2,3,squeeze=False,figsize=(7,3),subplot_kw={"projection":ccrs.LambertConformal(central_longitude=175)},dpi=300) 
ds0[vname].mean(dim="{0}_time".format(vname)).isel(s_rho=-1).plot(transform=ccrs.PlateCarree(),ax=ax[0,0],vmin=vmin0     ,vmax=vmax0    ,cbar_kwargs={"shrink":0.5,"label":""},cmap="jet"   ,x="lon_rho",y="lat_rho") 
ds1[vname].mean(dim="{0}_time".format(vname)).isel(s_rho=-1).plot(transform=ccrs.PlateCarree(),ax=ax[0,1],vmin=vmin0     ,vmax=vmax0    ,cbar_kwargs={"shrink":0.5,"label":""},cmap="jet"   ,x="lon_rho",y="lat_rho") 
dif       .mean(dim="{0}_time".format(vname)).isel(s_rho=-1).plot(transform=ccrs.PlateCarree(),ax=ax[0,2],vmin=-vmax0*0.1,vmax=vmax0*0.1,cbar_kwargs={"shrink":0.5,"label":""},cmap="RdBu_r",x="lon_rho",y="lat_rho") 
ds0[vname].mean(dim="{0}_time".format(vname)).isel(s_rho= 0).plot(transform=ccrs.PlateCarree(),ax=ax[1,0],vmin=vmin1     ,vmax=vmax1    ,cbar_kwargs={"shrink":0.5,"label":""},cmap="jet"   ,x="lon_rho",y="lat_rho") 
ds1[vname].mean(dim="{0}_time".format(vname)).isel(s_rho= 0).plot(transform=ccrs.PlateCarree(),ax=ax[1,1],vmin=vmin1     ,vmax=vmax1    ,cbar_kwargs={"shrink":0.5,"label":""},cmap="jet"   ,x="lon_rho",y="lat_rho") 
dif       .mean(dim="{0}_time".format(vname)).isel(s_rho= 0).plot(transform=ccrs.PlateCarree(),ax=ax[1,2],vmin=-vmax1*0.1,vmax=vmax1*0.1,cbar_kwargs={"shrink":0.5,"label":""},cmap="RdBu_r",x="lon_rho",y="lat_rho") 
for j,i in np.ndindex((2,3)): 
    ax[j,i].set_extent([130,220,5,65]) 
    ax[j,i].add_feature(cartopy.feature.NaturalEarthFeature('physical','land','110m',linewidth=0.0,facecolor='gray'),zorder=1) 
plt.tight_layout()

コメントを残す

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

CAPTCHA