Проблема с размером метки в Python xarray

Я новичок в xarray и cartopy. Я хочу спросить, как я могу увеличить / уменьшить размер меток на x- / y- метках. Ниже мой код.

fig = plt.figure(figsize=(18,8)) 
ax  = plt.axes(projection =ccrs.PlateCarree())   
ax.add_feature(cartopy.feature.LAND,facecolor='wheat') 
ax.add_feature(cartopy.feature.OCEAN) 
ax.add_feature(cartopy.feature.STATES, linestyle='-',lw=1.0,edgecolor='white') 
ax.add_feature(cartopy.feature.BORDERS, linestyle='-',lw=2.5,edgecolor='white') 
gp = ds.isel(time=0).gpm.plot.pcolormesh('lon','lat',ax=ax,
             infer_intervals=True,vmin=0,vmax=1600,cmap='jet',extend='both') 
ax.coastlines(resolution='50m',color='white') 
ax.add_feature(cartopy.feature.RIVERS) 
gl = ax.gridlines(color='gray',alpha=0.6,draw_labels=True) 
gl.xlabels_top, gl.ylabels_right = False, False 
ax.yaxis.tick_right() 
ax.set_ylim([18,32]) 
ax.set_xlim([-100,-77])  
ax.set_title('GPM Accumulated Rain (12Z Aug24 - 12Z Aug31)', fontsize=16) 
ax.set_aspect('equal') 
ax.tick_params('both',labelsize=30) 
plt.show()       

Я добавил tick_params, чтобы настроить размер надписи, но размер шрифта все еще имеет размер по умолчанию. Между тем, может ли кто-нибудь сказать мне, как переместить метку палитры в заголовок палитры?

Спасибо


person Franke Hsu    schedule 22.10.2018    source источник


Ответы (1)


Размер шрифта меток можно установить, передав словарь стилей в Gridliner аналогично тому, как вы переключали верхнюю и правую метки:

gl.xlabel_style = {fontsize: 30}
gl.ylabel_style = {fontsize: 40}

В результате ваш код будет выглядеть так:

fig = plt.figure(figsize=(18,8)) 
ax  = plt.axes(projection =ccrs.PlateCarree())   
ax.add_feature(cartopy.feature.LAND,facecolor='wheat') 
ax.add_feature(cartopy.feature.OCEAN) 
ax.add_feature(cartopy.feature.STATES, linestyle='-',lw=1.0,edgecolor='white') 
ax.add_feature(cartopy.feature.BORDERS, linestyle='-',lw=2.5,edgecolor='white') 
gp = ds.isel(time=0).gpm.plot.pcolormesh('lon','lat',ax=ax,
             infer_intervals=True,vmin=0,vmax=1600,cmap='jet',extend='both') 
ax.coastlines(resolution='50m',color='white') 
ax.add_feature(cartopy.feature.RIVERS) 
gl = ax.gridlines(color='gray',alpha=0.6,draw_labels=True) 
gl.xlabels_top, gl.ylabels_right = False, False
gl.xlabel_style, gl.ylabel_style = {'fontsize': 30}, {'fontsize': 40}
ax.yaxis.tick_right() 
ax.set_ylim([18,32]) 
ax.set_xlim([-100,-77])  
ax.set_title('GPM Accumulated Rain (12Z Aug24 - 12Z Aug31)', fontsize=16) 
ax.set_aspect('equal') 
plt.show()

В результате должен получиться следующий график (без данных):  График с метками линий сетки разного размера шрифта

На самом деле GeoAxis в Cartopy должен обрабатывать ax.tick_params('both', labelsize=30), но кажется, что это не передается при создании меток. Не стесняйтесь поднимать вопрос в репозитории Cartopy GitHub, где сообщество разработчиков может это исправить. Или попробуйте исправить это самостоятельно, отправив запрос на перенос!

person kaedonkers    schedule 23.10.2018
comment
Спасибо, я попробовал plt.rc и plt.rcParams, но они тоже не работают. - person Franke Hsu; 24.10.2018