Skip to content
Next Next commit
check xytext
  • Loading branch information
AndrGutierrez committed Aug 3, 2025
commit 190937839d810759d3459b3f862a2902227a444e
20 changes: 18 additions & 2 deletions lib/matplotlib/text.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import functools
import logging
import math
import numbers
from numbers import Real
import weakref

Expand Down Expand Up @@ -1862,6 +1863,7 @@ def transform(renderer) -> Transform
xy,
xycoords=xycoords,
annotation_clip=annotation_clip)
self.xytext = xytext
Comment thread
AndrGutierrez marked this conversation as resolved.
Outdated
# warn about wonky input data
if (xytext is None and
textcoords is not None and
Expand Down Expand Up @@ -2027,7 +2029,12 @@ def draw(self, renderer):
# docstring inherited
if renderer is not None:
self._renderer = renderer
if not self.get_visible() or not self._check_xy(renderer):

visible = (self.get_visible() and
self._check_xy(renderer) and
self._check_xytext())

if not visible:
return
# Update text positions before `Text.draw` would, so that the
# FancyArrowPatch is correctly positioned.
Expand All @@ -2046,7 +2053,10 @@ def get_window_extent(self, renderer=None):
# docstring inherited
# This block is the same as in Text.get_window_extent, but we need to
# set the renderer before calling update_positions().
if not self.get_visible() or not self._check_xy(renderer):
visible = (self.get_visible() and
self._check_xy(renderer) and
self._check_xytext())
if not visible:
return Bbox.unit()
if renderer is not None:
self._renderer = renderer
Expand All @@ -2072,4 +2082,10 @@ def get_tightbbox(self, renderer=None):
return super().get_tightbbox(renderer)


def _check_xytext(self, renderer=None):
Comment thread
AndrGutierrez marked this conversation as resolved.
Outdated
"""Check whether the annotation at *xy_pixel* should be drawn."""
valid = True
if all(isinstance(xyt, numbers.Number) for xyt in self.xytext):
valid = not np.isnan(self.xytext).any()
return valid
_docstring.interpd.register(Annotation=Annotation.__init__.__doc__)