如何更改 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')
我正在使用 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')