Загрузите значение из dimensions.xml и сделайте его отрицательным

Проблема 1

Вы неправильно вызываете plt.subplots. Вот пример использования по умолчанию

(nrows = 1, ncols = 1, sharex = False, sharey = False, squeeze = True, subplot_kw = None, gridspec_kw = None, ** fig_kw)

Кажется, что вы хотите 5 подзаговоров в строке, поэтому установите nrows=1 и ncols=5

fig,axs = plt.subplots(nrows=1,ncols=5,sharey=True)
ax, ax2, ax3, ax4, ax5  = axs

Проблема 2

Вы необходимо правильно установить шипы - вы хотите, чтобы слева и справа были видны. Это легко сделать с помощью функции:

def multi_spine_adj( axs):
    axs[0].spines['right'].set_visible(False)
    axs[0].yaxis.tick_left()
    for ax in axs[1:-1]:
        ax.spines['right'].set_visible(False)
        ax.spines['left'].set_visible(False)
    axs[-1].spines['left'].set_visible(False)
    axs[-1].yaxis.tick_right()

#wvln0 = np.linspace( 0,5,50) # make some fake data
#alb0 =  np.random.random(50) #make some fake data 

opts = {'linestyle':'-', 'marker':'o', 'color':'r','linewidth':1,'label':'Haze = 0T'}

fig,axs = plt.subplots(1,5,sharey=True)

xlims = [(0.15,1.10),
        (1.15,2.25),
        (1.20,1.30),
        (1.55,1.65),
        (1.95,2.15)]

for i,ax in enumerate(axs):
    x1,x2 = xlims[i]
    ax.plot(wvln0,alb0,**opts)
    ax.set_xlim(x1,x2)

multi_spine_adj(axs)    
plt.show()

Совет

Обратите внимание, как вы можете легко перебирать axs, это делает ваш код более чистым и простым в изменении ( если вы хотите добавить больше перерывов, например)

10
задан Velixo 16 June 2014 в 13:15
поделиться