From aa022971471ad15c4d1aba66eb9d42979618a96a Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Fri, 8 Sep 2023 15:44:00 -0400 Subject: [PATCH] Backport PR #26719: Fix issue with missing attribute in Path3DCollection --- lib/mpl_toolkits/mplot3d/art3d.py | 1 + lib/mpl_toolkits/mplot3d/tests/test_art3d.py | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/lib/mpl_toolkits/mplot3d/art3d.py b/lib/mpl_toolkits/mplot3d/art3d.py index ac6e841f5019..d2d782123f6e 100644 --- a/lib/mpl_toolkits/mplot3d/art3d.py +++ b/lib/mpl_toolkits/mplot3d/art3d.py @@ -833,6 +833,7 @@ def patch_collection_2d_to_3d(col, zs=0, zdir='z', depthshade=True): """ if isinstance(col, PathCollection): col.__class__ = Path3DCollection + col._offset_zordered = None elif isinstance(col, PatchCollection): col.__class__ = Patch3DCollection col._depthshade = depthshade diff --git a/lib/mpl_toolkits/mplot3d/tests/test_art3d.py b/lib/mpl_toolkits/mplot3d/tests/test_art3d.py index 02d35aad0e4b..4ed48aae4685 100644 --- a/lib/mpl_toolkits/mplot3d/tests/test_art3d.py +++ b/lib/mpl_toolkits/mplot3d/tests/test_art3d.py @@ -1,6 +1,9 @@ +import numpy as np + import matplotlib.pyplot as plt from matplotlib.backend_bases import MouseEvent +from mpl_toolkits.mplot3d.art3d import Line3DCollection def test_scatter_3d_projection_conservation(): @@ -36,3 +39,18 @@ def test_scatter_3d_projection_conservation(): assert contains is True assert len(ind["ind"]) == 1 assert ind["ind"][0] == i + + +def test_zordered_error(): + # Smoke test for https://github.com/matplotlib/matplotlib/issues/26497 + lc = [(np.fromiter([0.0, 0.0, 0.0], dtype="float"), + np.fromiter([1.0, 1.0, 1.0], dtype="float"))] + pc = [np.fromiter([0.0, 0.0], dtype="float"), + np.fromiter([0.0, 1.0], dtype="float"), + np.fromiter([1.0, 1.0], dtype="float")] + + fig = plt.figure() + ax = fig.add_subplot(projection="3d") + ax.add_collection(Line3DCollection(lc)) + ax.scatter(*pc, visible=False) + plt.draw() pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy