python
runtime_error
ai_generated
true
ValueError: Unable to determine Axes to steal space for Colorbar. Either provide the *cax* argument or pass *ax* or *axes* to the colorbar() method.
ID: python/matplotlib-colorbar-mappable-error
80%Fix Rate
88%Confidence
0Evidence
2024-07-22First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 3.x | active | — | — | — |
Root Cause
Calling plt.colorbar() with no current image/mappable or after clearing the axes, so matplotlib has no parent axes to attach the colorbar to.
generic中文
在没有当前图像/mappable 或清空坐标轴后调用 plt.colorbar(),matplotlib 没有父坐标轴可附加色条。
Workarounds
-
96% success
im = ax.imshow(data) fig.colorbar(im, ax=ax)
-
93% success
fig, (ax, cax) = plt.subplots(1, 2, gridspec_kw={'width_ratios':[4,1]}) im = ax.imshow(data) fig.colorbar(im, cax=cax)
Dead Ends
Common approaches that don't work:
-
95% fail
There is no mappable yet, so the same ValueError is raised.
-
80% fail
The fig keyword does not tell matplotlib which axes to steal space from.