One thing you can do which may work is to partition your plots 'by hand'.
It is not super elegant, but might get you the desired behavior. As long
as the number of partitions is low it shouldn't hurt performance _too_ much.
def z_jitter_plot(ax, x, y, partitions=10, **kwargs):
labels = np.ra
Right, when zorder is not explicitly specified, all the artists of the same
type get the same default zorder (I think 2, but I can't remember). We then
use a stable sort to determine the draw order, so two artists with the same
zorder are drawn in the order that they were created (the exception bei
For my backend (nbagg), the order of the data determines the order of drawing.
So in the following, the third diamond covers the first two in the first plot,
but the first diamond covers them all in the second plot. Perhaps not as
elegant as a matrix zorder, but can achieve the effect you are
I see what you are getting at. The issue is that artists are first sorted
by the zorder and then drawn one at a time. The draw for a collection
artist is an at-once operation, it can't (currently) be split out and
interspersed with the draws from another artist. This is one of the major
limitations
When multiple datasets are plotted on the same axis, the points overlay each
other making it hard to see the points under the most recent ones. One way to
avoid this is to give each point a random zorder, randomising its position in
the z axis. This way, points from the first dataset may overly