python
type_error
ai_generated
true
TypeError: 'ticks' must be a sequence of numbers or None, got <class 'list'> of strings.
ID: python/matplotlib-colorbar-ticks-error
80%Fix Rate
84%Confidence
0Evidence
2024-07-05First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 3.8 | active | — | — | — |
| 3.9 | active | — | — | — |
Root Cause
Passing string labels directly to the ticks parameter of colorbar(), which expects numeric positions.
generic中文
向colorbar()的ticks参数直接传递了字符串标签,但该参数需要数字位置。
Workarounds
-
95% success Set numeric tick positions and then set tick labels separately
cbar = plt.colorbar(); cbar.set_ticks([0, 0.5, 1]); cbar.set_ticklabels(['low', 'mid', 'high'])
-
90% success Use the format parameter for simple formatting
cbar = plt.colorbar(ticks=[0, 0.5, 1], format='%.2f')
Dead Ends
Common approaches that don't work:
-
Using a list of integers but with non-monotonic order
60% fail
Ticks must be monotonic; non-monotonic values may work but cause visual issues.
-
Setting tick labels without setting tick positions
80% fail
The error is about the ticks argument; positions must be numeric.