如何在matplotlib中使用(随机)*.otf或*.ttf字体?

rub*_*ens 34 python fonts matplotlib

如何在我的计算机上使用我的字体库中的任何类型的字体(例如*otf或者*ttf)matplotlib

Joe*_*ton 58

请参阅此处的示例: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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

通常,您只需指向字体名称,让matplotlib担心找到特定文件.例如

import matplotlib.pyplot as plt

plt.plot(range(10))
plt.title('This is some random font', family='GroovyGhosties', size=32)

plt.show()
Run Code Online (Sandbox Code Playgroud)

如果您希望matplotlib始终使用特定字体,请自定义您的.matplotlibrc文件.(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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 它对我不起作用(Python 3.6),如果无法识别字体,则仅使用默认字体 (3认同)