Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Open
Description
Bug summary
Per character font fallback (#20740) works great, except in tick labels.
Code for reproduction
importmatplotlib.pyplotasplt# CMU fonts available here : https://www.1001fonts.com/download/cmu.zipplt.rcParams["font.family"]= ["CMU Bright","DejaVu Sans"]s="There are\u2212\u00D7 in between!"plt.figtext(0.18,0.45,s)plt.gcf().suptitle(s)plt.gca().set_title(s)plt.xscale("log")plt.xlim(1e-2,6e-2)plt.show()
Actual outcome
In the tick labels, characters not covered by CMU Bright are rendered with a placeholder instead of falling back to DejaVu
Expected outcome
Tick labels should fall back to DejaVu for\u2212
(minus sign) and\u00D7
(times sign) as in the other text instances.
Additional information
It seems to happen only with tick labels, other instances of text rendering work as intended in#20740. I get the same outcome with bothmacosx
andTkAgg
backends
I get the following warnings:
Font 'default' does not have a glyph for '\u2212' [U+2212], substituting with a dummy symbol.Font 'default' does not have a glyph for '\\times' [U+d7], substituting with a dummy symbol.
Operating system
macOS 14.3.1
Matplotlib Version
3.8.3
Matplotlib Backend
MacOSX
Python version
3.11.7
Jupyter version
No response
Installation
pip