如何在我的计算机上的字体库中使用任何类型的字体(例如*otf
或*ttf
)?{/ p>
答案 0 :(得分:56)
请参阅此处的示例:http://matplotlib.sourceforge.net/examples/api/font_file.html
一般情况下,如果您想使用特定的.ttf
文件,则可以执行此类操作。 (请记住,指向特定的字体文件通常是一个坏主意!)
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(10))
prop = fm.FontProperties(fname='/usr/share/fonts/truetype/groovygh.ttf')
ax.set_title('This is some random font', fontproperties=prop, size=32)
plt.show()
通常,您只需指向字体名称,让matplotlib担心找到特定文件。 E.g。
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.title('This is some random font', family='GroovyGhosties', size=32)
plt.show()
如果您希望matplotlib始终使用特定字体,请customize your .matplotlibrc
file。 (font.family
是你想要设置的。注意你应该指定字体的名称,而不是特定的.ttf文件的路径。)
作为动态执行此操作的示例(即,未设置特定的.matplotlibrc
文件):
import matplotlib as mpl
mpl.rcParams['font.family'] = 'GroovyGhosties'
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.title('Everything is crazy!!!', size=32)
plt.show()
答案 1 :(得分:0)
您还可以指定字体并在matplot配置中覆盖默认字体系列,例如对于* nix
〜/ .. matplotlib / matplotlibrc
font.family: sans-serif
font.sans-serif: your font,sans-serif
答案 2 :(得分:-1)
在* nix上,您可以通过启用matplotlib的fontconfig后端来使用所有系统字体。
然而,matplotlib并没有真正与fontconfig库交谈,它通过运行fontconfig cli实用程序来模拟其行为。
因此,修改matplotlib fontconfig缓存以便它发现新字体可以成为救星(这种缓存的存在直接证明缺乏完整的fontconfig集成)。