From 7c62f87e6af3d202fa78797e946abc1b6024495f Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Thu, 14 Mar 2024 11:27:31 -0400 Subject: [PATCH] Backport PR #27921: Avoid modifying user input to Axes.bar --- lib/matplotlib/axes/_axes.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 3bd355bdc663..0285ec6bdaed 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -2394,7 +2394,8 @@ def bar(self, x, height, width=0.8, bottom=None, *, align="center", # checking and processing will be left to the errorbar method. xerr = kwargs.pop('xerr', None) yerr = kwargs.pop('yerr', None) - error_kw = kwargs.pop('error_kw', {}) + error_kw = kwargs.pop('error_kw', None) + error_kw = {} if error_kw is None else error_kw.copy() ezorder = error_kw.pop('zorder', None) if ezorder is None: ezorder = kwargs.get('zorder', None) @@ -2550,9 +2551,8 @@ def bar(self, x, height, width=0.8, bottom=None, *, align="center", error_kw.setdefault("label", '_nolegend_') - errorbar = self.errorbar(ex, ey, - yerr=yerr, xerr=xerr, - fmt='none', **error_kw) + errorbar = self.errorbar(ex, ey, yerr=yerr, xerr=xerr, fmt='none', + **error_kw) else: errorbar = None