1. 参数 fontdict
Axes.text matplotlib 文档 表示:
如果 fontdict 为 None,则默认值由您的 rc 参数确定。
因此,您必须在 ax.text()
中包含 fontdict=None
,才能按照 rcParams
中指定的字体显示其字体。
ax.text(..., fontdict=None)
fontdict
参数自matplotlib 2.0.0版本起可用。
2. 数学表达式
此外,对于像$a=b$
这样的数学表达式,文档中提到:
可以使用mathtext.default rcParam更改默认字体。例如,通过将其设置为regular,可以将与非数学文本相同的字体用于数学文本。
因此,您还需要将默认字体设置为'regular':
rcParams['mathtext.default'] = 'regular'
此选项自matplotlib 2.1.0版开始提供。
3. 示例
你的代码现在应该类似于:
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'serif'
plt.rcParams['font.serif'] = ['Times New Roman'] + plt.rcParams['font.serif']
plt.rcParams['mathtext.default'] = 'regular'
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1])
ax.text(0.5, 0.5, '$example$', horizontalalignment='center',
verticalalignment='center', size=18, fontdict=None)
plt.show()