I finally tracked down an annoying ticking bug. The bug goes that way:
1) you plot a figure with many ticks
2) you zoom in so that few ticks are left
3) you call tick_top()
4) you zoom out
Then, some of your ticks will be on top, some others at bottom.
The cause of this bug is that tick_top and friends do not change the visibility properties of all the ticks, but only the visible ones. This is because they call self.get_major_ticks(), instead of modifying all ticks in self.majorTicks.
While I was at it, I recoded those functions as property setters, to put them in line with the rest of matplotlib.
ticktop.diff (6.17 KB)