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
Bug summary
The functions
matplotlib.rcandmatplotlib.pyplot.rcprocess settings given as named parameters. Named parameters can't contain hyphens; therefore, it is impossible to setfont.sans-serifso 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
Actual outcome
Expected outcome
I think that that the parameter is named
font.sans-serifis a mistake, and it should be named something likefont.sans_serifwith an underscore. It may be too late to change that, but an alias would work.rcalready has aliases likelw→linewidth,ls→linestyle,c→color. I expect that there would be an alias likesans→sans-serifso I could userc("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