Как увеличить заполнение надписей на цветовой панели в matplotlib

#python #matplotlib #astronomy

#python #matplotlib #астрономия

Вопрос:

У меня есть график, который выполнен со следующим кодом:

 fig = plt.figure(figsize = (10 , 11))
gs = GridSpec(nrows=12, ncols=10)
gs.update(wspace = 0, hspace = 0.5)

ax0 = fig.add_subplot(gs[2:12, 0:10])
ax0.set_ylabel(r"$Pabeta/Halpha$")
ax0.set_xlabel(r"$Halpha/Hbeta$")
y0 = ax0.scatter(dcmergedf['HA_FLUX']/dcmergedf['HB_FLUX'], dcmergedf['PAB_FLUX']/dcmergedf['HA_FLUX'], s=300, c = dcmergedf['td_lmass'], cmap='coolwarm')
ax0.errorbar(dcmergedf['HA_FLUX']/dcmergedf['HB_FLUX'] ,  dcmergedf['PAB_FLUX']/dcmergedf['HA_FLUX']  , xerr = dcmergedf['BALMER_ERR'] , yerr = dcmergedf['PABHA_ERR'], c = 'black' , linestyle = 'None')
ax0.plot(dustcurvesdf['HAHB'] , dustcurvesdf['PABHA_CALZ00']*5 , c = 'blue' , label = '5 x Calzetti 00' , linestyle = '--')
ax0.plot(dustcurvesdf['HAHB'] , dustcurvesdf['PABHA_CALZ00'] , c = 'blue' , label = 'Calzetti 00')

ax0.plot(dustcurvesdf['HAHB'] , dustcurvesdf['PABHA_GORD03'] , c = 'green' , linestyle = ':' , label = 'Gordon 03')
ax0.plot(dustcurvesdf['HAHB'] , dustcurvesdf['PABHA_FITZ99'] , c = 'orange' , linestyle = '-.' , label = 'Fitzpatrick 99')

ax0.axis([1 , 10 , 0 , 1.8])
#ax0.legend(loc = 'upper left')
ax3 = fig.add_subplot(gs[0:1,1:9])
fig.colorbar(y0,ax3,use_gridspec=True,orientation='horizontal' ,  label = r'log$M_{odot}

Результирующий график выглядит следующим образом
построение графика с цветовой панелью

Как мне увеличить заполнение метки цветовой панели, чтобы она не перекрывалась с самой цветовой панелью?


Ответ №1:

Вы можете установить выравнивание по вертикали (по 'bottom' умолчанию 'basement' ):

 ax3.xaxis.get_label().set_verticalalignment('bottom')
 

слева: по умолчанию (базовая линия), справа внизу:

базовый уровень внизу

)
ax3.xaxis.set_label_position('top')
#ax3.xaxis.set_label_pad(0.1)
Результирующий график выглядит следующим образом
построение графика с цветовой панелью

Как мне увеличить заполнение метки цветовой панели, чтобы она не перекрывалась с самой цветовой панелью?

Ответ №1:

Вы можете установить выравнивание по вертикали (по 'bottom' умолчанию 'basement' ):


слева: по умолчанию (базовая линия), справа внизу:

базовый уровень внизу