-
-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Description
Bug summary
The functions matplotlib.rc and matplotlib.pyplot.rc process settings given as named parameters. Named parameters can't contain hyphens; therefore, it is impossible to set font.sans-serif so because it contains a hyphen.
It is possible to set the parameter by different means, but this seems like the main way, so I consider that it does not work a significant shortcoming. How else this parameter can be set:
matplotlib.rcParams["font.sans-serif"] = "Fira Sans"matplotlib.rc("font", **{"sans-serif": "Fira Sans"})
Code for reproduction
from matplotlib import rc
rc("font", sans-serif="Fira Sans")Actual outcome
>>> from matplotlib import rc
>>> rc("font", sans-serif="Fira Sans")
File "<python-input-1>", line 1
rc("font", sans-serif="Fira Sans")
^^^^^^^^^^^
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
Expected outcome
I think that that the parameter is named font.sans-serif is a mistake, and it should be named something like font.sans_serif with an underscore. It may be too late to change that, but an alias would work. rc already has aliases like lw → linewidth, ls → linestyle, c → color. I expect that there would be an alias like sans → sans-serif so I could use rc("font", sans="Fira Sans").
Additional information
No response
Operating system
No response
Matplotlib Version
3.10.1
Matplotlib Backend
No response
Python version
Python 3.13.3
Jupyter version
No response
Installation
None