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()