diff --git a/lib/matplotlib/artist.py b/lib/matplotlib/artist.py index 4eeaeeda441c..2356930429f0 100644 --- a/lib/matplotlib/artist.py +++ b/lib/matplotlib/artist.py @@ -361,8 +361,9 @@ def get_tightbbox(self, renderer=None): Returns ------- - `.Bbox` + `.Bbox` or None The enclosing bounding box (in figure pixel coordinates). + Returns None if clipping results in no intersection. """ bbox = self.get_window_extent(renderer) if self.get_clip_on(): @@ -370,7 +371,7 @@ def get_tightbbox(self, renderer=None): if clip_box is not None: bbox = Bbox.intersection(bbox, clip_box) clip_path = self.get_clip_path() - if clip_path is not None: + if clip_path is not None and bbox is not None: clip_path = clip_path.get_fully_transformed_path() bbox = Bbox.intersection(bbox, clip_path.get_extents()) return bbox diff --git a/lib/matplotlib/transforms.pyi b/lib/matplotlib/transforms.pyi index 37d51231084e..c199fbd88b2b 100644 --- a/lib/matplotlib/transforms.pyi +++ b/lib/matplotlib/transforms.pyi @@ -105,7 +105,7 @@ class BboxBase(TransformNode): @staticmethod def union(bboxes: Sequence[BboxBase]) -> Bbox: ... @staticmethod - def intersection(bbox1: BboxBase, bbox2: BboxBase) -> Bbox: ... + def intersection(bbox1: BboxBase, bbox2: BboxBase) -> Bbox | None: ... class Bbox(BboxBase): def __init__(self, points: ArrayLike, **kwargs) -> None: ...
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: