Trying to build observations accordingly for several scales for observation, I managed to create the following graph:

However, I would like to add a checkmark representing the y-max value in each scale, regardless of the gap between it and the previous tick. An example of such a chart is given below. It is created when y-max is a multiple of the tick interval.

Thanks F.
Here is the code used to create this example.
import numpy as np
import pylab as pl
import matplotlib as plt
import matplotlib.ticker as ticker
import matplotlib.transforms
def add_scales(fig, axes, scales, subplot_reduction_factor=0.1, margin_size=50):
nb_scales = len(scales)
b,l,w,h = zoom_ax.get_position().bounds
_, ymax = axes.get_ylim()
fig.subplots_adjust(right=1-(subplot_reduction_factor)*nb_scales)
for (n, (vmin, vmax, color, label, alignment)) in enumerate(scales):
nax = fig_zoom.add_axes((b,l,w,(h * alignment) / ymax))
nax.spines['right'].set_position(('outward', -40+n*margin_size))
nax.set_ylim((vmin,vmax))
nax.yaxis.set_label_position('right')
nax.yaxis.set_ticks_position('right')
nax.patch.set_visible(False)
nax.xaxis.set_visible(False)
nax.yaxis.set_visible(True)
nax.spines["top"].set_visible(False)
nax.spines["bottom"].set_visible(False)
nax.spines['right'].set_color(color)
nax.tick_params(axis='y', colors=color)
nax.yaxis.set_smart_bounds(False)
if label != None:
nax.set_ylabel(None)
if __name__ == '__main__':
a=(np.random.normal(10,5,100))
a=np.linspace(0,100,100)
c=np.linspace(0,80, 100)
d=np.linspace(0,40,100)
fig_zoom = plt.pyplot.figure()
zoom_ax = fig_zoom.add_subplot(1,1,1)
zoom_ax.plot(a,c)
zoom_ax.plot(a,d)
zoom_ax.set_title('Zoom')
zoom_ax.set_xlabel('A')
zoom_ax.set_ylabel('B')
zoom_ax.set_ylim((0,100))
zoom_ax.grid()
add_scales(fig_zoom,
zoom_ax, [(0,.55,'green',None,40),
(0,.85,'blue',None,80)])
fig_zoom.savefig(open('./test.svg','w'),format='svg')