File tree Expand file tree Collapse file tree
doc/api/next_api_changes/removals Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11colorbar defaults to stealing space from the mappable's axes rather than the current axes
22~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33
4- Pass ``ax=plt.gca() `` to restore the previous behavior.
4+ If the mappable does not have an Axes, then an error will be raised.
5+
6+ Pass the *cax * or *ax * argument to be explicit about where the colorbar will be
7+ placed. Passing ``ax=plt.gca() `` will restore the previous behavior.
58
69Removal of deprecated ``colorbar `` APIs
710~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Original file line number Diff line number Diff line change @@ -1245,13 +1245,19 @@ def colorbar(
12451245 """
12461246
12471247 if ax is None :
1248- ax = getattr (mappable , "axes" , self . gca () )
1248+ ax = getattr (mappable , "axes" , None )
12491249
12501250 if (self .get_layout_engine () is not None and
12511251 not self .get_layout_engine ().colorbar_gridspec ):
12521252 use_gridspec = False
12531253 # Store the value of gca so that we can set it back later on.
12541254 if cax is None :
1255+ if ax is None :
1256+ raise ValueError (
1257+ 'Unable to determine Axes to steal space for Colorbar. '
1258+ 'Either provide the *cax* argument to use as the Axes for '
1259+ 'the Colorbar, provide the *ax* argument to steal space '
1260+ 'from it, or add *mappable* to an Axes.' )
12551261 current_ax = self .gca ()
12561262 userax = False
12571263 if (use_gridspec and isinstance (ax , SubplotBase )):
Original file line number Diff line number Diff line change @@ -315,6 +315,14 @@ def test_colorbarbase():
315315 Colorbar (ax , cmap = plt .cm .bone )
316316
317317
318+ def test_parentless_mappable ():
319+ pc = mpl .collections .PatchCollection ([], cmap = plt .get_cmap ('viridis' ))
320+ pc .set_array ([])
321+
322+ with pytest .raises (ValueError , match = 'Unable to determine Axes to steal' ):
323+ plt .colorbar (pc )
324+
325+
318326@image_comparison (['colorbar_closed_patch.png' ], remove_text = True )
319327def test_colorbar_closed_patch ():
320328 # Remove this line when this test image is regenerated.
@@ -675,7 +683,7 @@ def test_colorbar_inverted_ticks():
675683def test_mappable_no_alpha ():
676684 fig , ax = plt .subplots ()
677685 sm = cm .ScalarMappable (norm = mcolors .Normalize (), cmap = 'viridis' )
678- fig .colorbar (sm )
686+ fig .colorbar (sm , ax = ax )
679687 sm .set_cmap ('plasma' )
680688 plt .draw ()
681689
You can’t perform that action at this time.
0 commit comments