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
mplot3d, because it mucks about with zorders to achieve the 3d effect).
Post by Jody KlymakFor 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 after.
Cheers, Jody
fig, ax = plt.subplots(2,1)
x = np.arange(3)
y = 0.*x
ax[0].plot(x,y,'d',markersize=52)
ax[0].set_xlim(-10.,10.)
ax[1].plot(x[[2,1,0]],y[[2,1,0]],'d',markersize=52)
ax[1].set_xlim(-10.,10.)
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 for mplot3d, as it would be nice to compose a 3d scene properly
so that everything is logically consistent.
I have actually been working on some changes that would allow one to sort
the draws of individual elements of a collection, but I still haven't
figured out a way to "break out" the elements with other collection
elements in a way that doesn't break the current design or introduce major
performance penalties. Maybe I'll figure something out during SciPy2015.
Cheers!
Ben Root
On Tue, Jun 23, 2015 at 5:44 AM, Simon Walker <
Post by Simon WalkerWhen 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
points from the last dataset.
This could be achieved nicely if the zorder keyword took an array so the
random zorder values per point can be pre-computed, but currently it only
accepts a single number for the whole dataset. Would this be a useful
feature for others to have? How difficult would it be to implement?
Thanks,
Simon Walker
------------------------------------------------------------------------------
Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors
network devices and physical & virtual servers, alerts via email & sms
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
_______________________________________________
Matplotlib-users mailing list
https://lists.sourceforge.net/lists/listinfo/matplotlib-users
------------------------------------------------------------------------------
Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors
network devices and physical & virtual servers, alerts via email & sms
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o_______________________________________________
Matplotlib-users mailing list
https://lists.sourceforge.net/lists/listinfo/matplotlib-users
------------------------------------------------------------------------------
Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors
network devices and physical & virtual servers, alerts via email & sms
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
_______________________________________________
Matplotlib-users mailing list
https://lists.sourceforge.net/lists/listinfo/matplotlib-users