如何更改 xarray facetgrid colorbar 标签的字体大小?

How to change font size of xarray facetgrid colorbar labels?

我正在使用 xarray 的 facetgrid 绘制来自 dataArray 的数据。我想以网格形式绘制 12 个月的数据并在侧面插入颜色条。 xarray 已经做了所有这些,但我不确定如何增加颜色条标签和颜色条刻度标签的字体大小。这是一个要复制的例子:

import pandas as pd
import xarray as xr
import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs

np.random.seed(0)
temperature = 15 + 8 * np.random.randn(49, 49, 12)
lon = np.linspace(-52, -40, 49)
lat = np.linspace(-15, -27, 49)
month = np.arange(1, 13, 1)

da = xr.DataArray(
    data=temperature,
    dims=["lon", "lat", "month"],
    coords=dict(
        lon=("lon", lon),
        lat=("lat", lat),
        month=month,
    ),
    attrs=dict(
        description="Ambient temperature.",
        units="degC",
    ),
)

fg = da.plot(x='lon', 
             y='lat', 
             col='month', 
             col_wrap=4, 
             cmap='GnBu',
             figsize=(27, 15),
             vmin=0,
             vmax=50,
             transform=ccrs.PlateCarree(),
             subplot_kws={
                          "projection": ccrs.PlateCarree()
                         },
             cbar_kwargs={
                          "orientation": "vertical",
                          #"shrink": 1.,
                          #"aspect": 40,
                          "label": "Temperature (°C)",
                         })


titles = ['Jan','Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

for ax, title in zip(fg.axes.flatten(), titles):
    ax.set_title(title, fontsize=22)

这给了我这个数字:

非常感谢您。

罗布森

一种方法是从 cbar_kwargs 中删除颜色栏标签定义,并在最后定义它以及颜色栏刻度的大小。这提供了更细粒度的控制:

fg = da.plot(x='lon', 
             y='lat', 
             col='month', 
             col_wrap=4, 
             cmap='GnBu',
             figsize=(27, 15),
             vmin=0,
             vmax=50,
             transform=ccrs.PlateCarree(),
             subplot_kws={
                          "projection": ccrs.PlateCarree()
                         },
             cbar_kwargs={
                          "orientation": "vertical",
                          #"shrink": 1.,
                          #"aspect": 40
                         })


titles = ['Jan','Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

for ax, title in zip(fg.axes.flatten(), titles):
    ax.set_title(title, fontsize=22)
    
fg.cbar.ax.tick_params(labelsize=30)
fg.cbar.set_label(label='Temperature (°C)', size=30, weight='bold')