如何在matplotlib的对数图中设置科学数字的字体?

时间:2017-10-31 22:28:15

标签: python matplotlib plot fonts

通过rcParams设置字体时,例如

import matplotlib as mpl

mpl.rcParams['font.sans-serif'] = ['FreeSans', ]

对数图中的字体不会更改。而是保留默认字体类型。

import matplotlib.pyplot as plt
from numpy import arange
plt.ion()
fig = plt.figure()
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212)
for n in range(1, 10):
    ax1.plot(range(1, 10), arange(1, 10)**n, label='poly{}'.format(n))
    ax2.plot(range(1, 10), arange(1, 10)**n, label='poly{}'.format(n))
ax1.set_xscale('log')
ax1.set_yscale('log')
ax2.legend(ncol=2);

lin-and-log-plot

我想知道是否有办法设置科学字体类型?

(在两个图中检查"那些"时可以看到不同的字体。)

1 个答案:

答案 0 :(得分:0)

将mathtext fontset更改为'custom'对我来说很有用:

import matplotlib as mpl

mpl.rcParams['font.sans-serif'] = ['FreeSans', ]
mpl.rcParams['mathtext.fontset'] = 'custom'