diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 8bb104487702..f4ce4dded35d 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -699,11 +699,17 @@ def text(self, x, y, s, fontdict=None, withdash=False, **kwargs): >>> text(x, y, s, bbox=dict(facecolor='red', alpha=0.5)) """ - default = { + if fontdict is None: + fontdict = {} + + effective_kwargs = { 'verticalalignment': 'baseline', 'horizontalalignment': 'left', 'transform': self.transData, - 'clip_on': False} + 'clip_on': False, + **fontdict, + **kwargs, + } # At some point if we feel confident that TextWithDash # is robust as a drop-in replacement for Text and that @@ -711,17 +717,12 @@ def text(self, x, y, s, fontdict=None, withdash=False, **kwargs): # isn't too significant, it may make sense to eliminate # the withdash kwarg and simply delegate whether there's # a dash to TextWithDash and dashlength. + if withdash: - t = mtext.TextWithDash( - x=x, y=y, text=s) + t = mtext.TextWithDash(x, y, text=s) else: - t = mtext.Text( - x=x, y=y, text=s) - - t.update(default) - if fontdict is not None: - t.update(fontdict) - t.update(kwargs) + t = mtext.Text(x, y, text=s) + t.update(effective_kwargs) t.set_clip_path(self.patch) self._add_text(t) diff --git a/lib/matplotlib/text.py b/lib/matplotlib/text.py index 7cd48ef06b6a..c86292d9ebe5 100644 --- a/lib/matplotlib/text.py +++ b/lib/matplotlib/text.py @@ -1319,7 +1319,8 @@ def __init__(self, multialignment=multialignment, fontproperties=fontproperties, rotation=rotation, - linespacing=linespacing) + linespacing=linespacing, + ) # The position (x,y) values for text and dashline # are bogus as given in the instantiation; they will