x позиция matplotlib

Теперь я делаю некоторые графики, используя python. Когда xtick слишком длинный, метка x находится за пределами графика. Как показано ниже: введите описание изображения здесь

Я знаю, что мы можем настроить его, когда мы сохраним фигуру командой plt.savefig ("plot_name", bbox_inches = 'tight'), но это изменит размер цифр, если я делаю несколько графиков, когда компилирую в латекс , как показано ниже.

введите описание изображения здесь

Я хочу, чтобы все мои сюжеты имели одинаковый размер, а затем, когда я компилирую в латекс, они будут иметь одинаковый размер.

Кто-нибудь может предложить мне какой-то намек на решение этой проблемы? Большое спасибо.

Код для этих графиков: (этот опубликованный код не совсем тот же код, что и выше, поскольку я не могу опубликовать его. Но эти два почти одинаковы, единственное отличие состоит в том, что у одного есть цикл for сделайте несколько цифр, а другой перечислите все цифры.)

params = {'backend': 'ps', 'font.size': 30, 'font.style': 'normal', 'axes.labelsize': 30, #'text.fontsize': 30, 'axes.linewidth': 2, 'legend.fontsize': 12, 'xtick.labelsize': 25, 'ytick.labelsize': 25, 'text.usetex': True, 'ps.usedistiller': 'xpdf'} 

rcParams.update (PARAMS)

 for i in range(len(sepa_step)): if i == len(sepa_step) - 1: continue if i % 3 == 0: ########### calculating average flux stack_flux1 = stack[i] / stack_num[i] stack_flux2 = stack[i+1] / stack_num[i+1] stack_flux3 = stack[i+2] / stack_num[i+2] f, (ax1, ax2, ax3) = plt.subplots(3, sharex=True, sharey=False,figsize=(10,20)) ax1.plot(wave_alpha,stack_flux1,'-b',linewidth=4) ax1.set_ylabel(r'$10^{-17} \ {\rm erg} \ {\rm cm}^{-2} \ {\rm s}^{-1} \ {\rm \AA}^{-1}$',fontsize = 30) ax1.tick_params('both', length=10, width=2, which='major') ax1.tick_params('both', length=5, width=2, which='minor') ax1.axvline(x=6562.81, linewidth=4, color='r',linestyle='--') ax2.plot(wave_alpha,stack_flux2,'-b',linewidth=4) ax2.set_ylabel(r'$10^{-17} \ {\rm erg} \ {\rm cm}^{-2} \ {\rm s}^{-1} \ {\rm \AA}^{-1}$',fontsize = 30) ax2.tick_params('both', length=10, width=2, which='major') ax2.tick_params('both', length=5, width=2, which='minor') ax2.axvline(x=6562.81, linewidth=4, color='r',linestyle='--') ax3.plot(wave_alpha,stack_flux3,'-b',linewidth=4) ax3.set_ylabel(r'$10^{-17} \ {\rm erg} \ {\rm cm}^{-2} \ {\rm s}^{-1} \ {\rm \AA}^{-1}$',fontsize = 30) ax3.set_xlabel(r'$\lambda$ ($\AA$)',fontsize = 30) ax3.tick_params('both', length=10, width=2, which='major') ax3.tick_params('both', length=5, width=2, which='minor') ax3.axvline(x=6562.81, linewidth=4, color='r',linestyle='--') title1 = 'separation ' + str(sepa_step[i]) + '$\sim$' + str(sepa_step[i+1]) + ' mpc' title2 = 'separation ' + str(sepa_step[i+1]) + '$\sim$' + str(sepa_step[i+2]) + ' mpc' title3 = 'separation ' + str(sepa_step[i+2]) + '$\sim$' + str(sepa_step[i+3]) + ' mpc' ax1.set_title(title1,fontsize=20) ax2.set_title(title2,fontsize=20) ax3.set_title(title3,fontsize=20) #f.subplots_adjust(hspace=0.5) plot_name = './plots_fiton/separation_' + str(i/3 + 1) + '.eps' #plt.subplots_adjust(left=0.25, right=0.9, top=0.95, bottom=0.05) plt.savefig(plot_name,bbox_inches='tight') 

Вы можете отрегулировать все параметры сюжета в файле matplotlibrc включая размер полей. Файл обычно находится в ~/.config/matplotlib/matplotlibrc в Linux. Файл не создается по умолчанию, поэтому я предлагаю скопировать этот шаблон, а затем его изменить.

Вас могут заинтересовать следующие настройки:

 # The figure subplot parameters. All dimensions are a fraction of the # figure width or height figure.subplot.left : 0.125 # the left side of the subplots of the figure figure.subplot.right : 0.9 # the right side of the subplots of the figure figure.subplot.bottom : 0.1 # the bottom of the subplots of the figure figure.subplot.top : 0.9 # the top of the subplots of the figure figure.subplot.wspace : 0.2 # the amount of width reserved for blank space between subplots figure.subplot.hspace : 0.2 # the amount of height reserved for white space between subplots 

которые определяют, сколько места осталось вокруг участка.