I'm trying to use a TTF font in matplotlib; the .ttf file is downloaded and lives locally on my machine. I've followed other instructions on this site for selecting the font using font_manager
; however, any text that I generate trying to use the font properties still appears in the default matplotlib font.
I know that Python does successfully find the font file, since prop.get_name()
and similar commands do show the attributes of the font I want - but that's not what appears on my figure. Any suggestions?
As an example:
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
fig, ax = plt.subplots()
prop = fm.FontProperties(fname='/Users/smith/fonts/coolfont.ttf')
ax.set_title('Text in a cool font', fontproperties=prop, size=40)
fig.show()
its because of the backend that you are using.
When I tried to do something similar with my default backend which is MacOS
and with the cairo
backend it didnt work.
However when I switched to agg
and TKagg
and run your example the custom font was there.
Here is your code modified so that it runs on my machine
#!/usr/bin/env python
import matplotlib
matplotlib.use( "agg" )
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
fig, ax = plt.subplots()
prop = fm.FontProperties(fname='Outwrite.ttf')
ax.set_title('Text in a cool font', fontproperties=prop, size=40)
plt.show()
plt.savefig('test.png')
The resulting image is with a custom font.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With