matplotlib/matplotlib · error · ValueError
Invalid hex color specifier: {orig_c!r}
Error message
Invalid hex color specifier: {orig_c!r} What it means
Error "Invalid hex color specifier: {orig_c!r}" thrown in matplotlib/matplotlib.
Source
Thrown at lib/matplotlib/colors.py:409
if re.fullmatch("#[a-fA-F0-9]+", c):
if len(c) == 7: # #rrggbb hex format.
return (*[n / 0xff for n in bytes.fromhex(c[1:])],
alpha if alpha is not None else 1.)
elif len(c) == 4: # #rgb hex format, shorthand for #rrggbb.
return (*[int(n, 16) / 0xf for n in c[1:]],
alpha if alpha is not None else 1.)
elif len(c) == 9: # #rrggbbaa hex format.
color = [n / 0xff for n in bytes.fromhex(c[1:])]
if alpha is not None:
color[-1] = alpha
return tuple(color)
elif len(c) == 5: # #rgba hex format, shorthand for #rrggbbaa.
color = [int(n, 16) / 0xf for n in c[1:]]
if alpha is not None:
color[-1] = alpha
return tuple(color)
else:
raise ValueError(f"Invalid hex color specifier: {orig_c!r}")
# string gray.
try:
c = float(c)
except ValueError:
pass
else:
if not (0 <= c <= 1):
raise ValueError(
f"Invalid string grayscale value {orig_c!r}. "
f"Value must be within 0-1 range")
return c, c, c, alpha if alpha is not None else 1.
raise ValueError(f"Invalid RGBA argument: {orig_c!r}")
# turn 2-D array into 1-D array
if isinstance(c, np.ndarray):
if c.ndim == 2 and c.shape[0] == 1:
c = c.reshape(-1)
# tuple color.
if not np.iterable(c):View on GitHub (pinned to b379c1b69e)
When it happens
Trigger: Thrown at lib/matplotlib/colors.py:409 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of matplotlib/matplotlib@b379c1b69e (2026-08-21).
Data as JSON: /api/errors/bdb784b57d307b00.
Report an issue: GitHub.