Why doesn't matplotlib use the .ttf font that I provide?

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.

链接地址: http://www.djcxy.com/p/64472.html

上一篇: UITableView reloadData什么都不做(UITableView不是零)

下一篇: 为什么matplotlib不使用我提供的.ttf字体?