From 2d9ea858bfa8cee02ca3514da5053c8b9d3c5546 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 5df5c8271e7f..e18563a816d6 100644 --- a/lib/mpl_toolkits/mplot3d/art3d.py +++ b/lib/mpl_toolkits/mplot3d/art3d.py @@ -808,6 +808,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