Избегайте перекрывающихся цветовых полос на графике сетки фасетов xarray
import xarray as xr
import cartopy.crs as ccrs
USA_PROJ = ccrs.AlbersEqualArea(central_longitude=-97., central_latitude=38.)
g_simple = ds_by_month.t2m.plot(x='longitude',
y='latitude',
col='month',
col_wrap=6,
aspect=ds.dims['longitude'] / ds.dims['latitude'],
subplot_kws=dict(projection=USA_PROJ),
add_colorbar=False,
transform=ccrs.PlateCarree())
g_simple.add_colorbar(orientation='horizontal')
for ax in g_simple.axes.ravel():
ax.coastlines()
ax.set_extent([-121, -72, 22.5, 50])
plt.tight_layout()
plt.show()
Запустив код выше, я получаю следующее. фигура:
Как я могу убедиться, что цветовая панель не перекрывает графики? перекрытие происходит, даже если я использую цветовую панель xarray по умолчанию.
1 ответ
Вы можете присвоить цветовой шкале свой собственный набор осей и установить отрицательное значение "bottom", чтобы оно превышало ограничивающий прямоугольник, или иначе установить функцию subplots_adjust, используя аргумент ключевого слова (т.е. hspace = 2
так далее).
Вот пример со случайными данными ниже (измененный из примера с субплотами matplotlib):
import numpy as np
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=2, ncols=6, figsize=(15,5))
for ax in axes.flat:
im = ax.imshow(np.random.random((10,10)), vmin=0, vmax=1)
# color bar
fig.subplots_adjust(right=0.875) #also try using kwargs bottom, top, or hspace
cbar_ax = fig.add_axes([0.1, -0.1, .8, .05]) #left, bottom, width, height
fig.colorbar(im, cax=cbar_ax, orientation="horizontal")
plt.show()