Matplotlibに関して独立したページを設けるほどでもないTipsを記載します。
Seabornのカラーパレットを使う
Matplotlibのデフォルトのカラーパレットtab10は明るすぎるときがあるので、Seabornのカラーパレットでdeepを指定して明るさを落とした例です。
import seaborn as sns
from matplotlib.colors import ListedColormap
cmap=ListedColormap(sns.color_palette("deep"))
fig,ax=plt.subplots(1,2,figsize=(8,3),dpi=200)
idx=0
for c in colnames:
df0["R68"] ["dspath"].plot(x="times",y=c,ax=ax[0],legend=False,color=cmap(idx))
df0["R1000"]["dspath"].plot(x="times",y=c,ax=ax[1],legend=False,color=cmap(idx))
時間軸を変換して選択して描画
Matplotlibで時間を座標にして作図する際、数値モデルの結果では現実ではない年(例えば0001年)になり、エラーとなってしまいます。そこで、便宜的に2000年からの時刻を割り当てて作図しました。
mdl_time=[]
for tm in ds0["ocean_time"].data:
mdl_time.append(dt.datetime(2000+tm.year,tm.month,tm.day,tm.hour,0,0))
ds0["mdl_time"]=xr.DataArray(np.array(mdl_time),dims=["ocean_time"])
ds0=ds0.set_index(ocean_time="mdl_time")
fig,ax=plt.subplots(1,2)
ds0["001"].u.isel(s_rho=-1).sel(ocean_time="2001-02-27").plot(ax=ax[0],robust=True,cmap="RdBu_r")
ds0["002"].u.isel(s_rho=-1).sel(ocean_time="2001-02-27").plot(ax=ax[1],robust=True,cmap="RdBu_r")
plt.tight_layout()