-
-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Closed
Milestone
Description
Problem
When colorbar autocreates an Axes, one can pass location, which also sets the colorbar's orientation and the ticklocation (left for a left colorbar, right for a right colorbar, etc.). When one instead passes a manually created Axes (e.g. using inset_axes, as suggested by the colorbar_placement.py example), the location kwarg is not accepted (because things are directly passed to the Colorbar class); one needs to explicitly set orientation and ticklocation (the latter is not even documented by Figure.colorbar):
from pylab import *
sfs = figure(layout="constrained").subfigures(1, 2)
ax = sfs[0].add_subplot()
im = ax.imshow([[0, 1], [2, 3]])
ax.figure.colorbar(im, location="top")
ax = sfs[1].add_subplot()
im = ax.imshow([[0, 1], [2, 3]])
ax.figure.colorbar(im, cax=ax.inset_axes([0, 1.05, 1, 0.05]),
orientation="horizontal", ticklocation="top")
show()Proposed solution
Add a location kwarg to the Colorbar constructor which sets both orientation and ticklocation, and is mutually exclusive with them.
... or at least better document the workaround.
timhoffm and aswarner