I have created a plot where I have time in minutes at the bottom x-axis.  I have another axis with clock-time (hh:mm) at the top x-axis.  I use SpanSelector to zoom in the x-axis only.  Whenever I zoom in or zoom out on the minute axis I would like to sync the hh:mm axis as well.  I used xticks = self.ax[0].xaxis.get_ticklocs() to get the tick locations on the minute axis and then plot the labels at the corresponding tick locations on the hh:mm axis.  The behavior during zooms is not what I was expecting.  When the plot is first created the tick locations on both axes are correct and they are as follows

0.0 07:51:08
50.0 08:41:08
100.0 09:31:08
150.0 10:21:08
200.0 11:11:08
250.0 12:01:08
300.0 12:51:08

After zoom in the reported tick locations are as follows

30.0 08:21:08
60.0 08:51:08
90.0 09:21:08
120.0 09:51:08
150.0 10:21:08
180.0 10:51:08
210.0 11:21:08

But the bottom minute axis shows 60, 90, 120, 150, 180. Because the span starts at 31.5 minutes and ends at 185 minutes.  Therefore, the bottom axis does not draw the 30 and 210 ticks.  However, get_ticklocs() gets the 30 and 210 min values and the hh:mm axis is drawn out of sync.

So now my question is: is there a method that only returns the tick locations that are actually drawn on the plot?