-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Overlapping 3D objects #12620
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
TL;DR: mplot3d is useful, but is limited by the z-ordering rendering engine of matplotlib. It is incapable of properly constructing a scene with multiple elements that have overlapping bounding boxes. There are some tricks to help mitigate this somewhat, but it can never truely be solved. |
Thanks. |
Oy, seriously? I don't see any unit tests in that PR, and I don't think anybody asked for my review of the mplot3d portions. I would have pointed out that the fundamental design of mplot3d prevents having an axis above anything. |
Pushed out as I don't think this is going to be fixed in the next 6-12 hours. |
Sorry @WeatherGod This looks like my mistake to merge 🐑 |
Looking at it again I am tempted to close this as "not worse than the known issues with mplot3d". In 2.2, things would "work" if you had only two PolyCollections, but not three:
The solution in either case is to set the zorder of the line to a high enough value, e.g. |
Based on the above solution, I'm closing. Agree this is suboptimal, and indeed may have changed in 3.0.0, but I don't think we should bother fixing it given the limitations on draw order in mplot3d. |
Bug report
When plotting a 3D plane, a segment and a few points, there are visualization issues:
The 'filling' of the plane cover the line and the points
output figure

expected output:
the red segment should at [2, 2, 0] in the middle of the plane. It looks as it is 'under' it
stackoverflow thread
Matplotlib version
print(matplotlib.get_backend())
): Qt5, GTK and WXInstalled with pip
The text was updated successfully, but these errors were encountered: