如何设置 ipython matplotlib/pylab 的字体?

how to set font for ipython matplotlib/pylab?

我通过 ~/.matplotlib/matplotlibrc 将 matplotlib 的字体设置为 ttf。当我 运行:

$ python myplot.py

它使用了正确的字体。但如果我这样做:

$ ipython --pylab Python 2.7.8 |蟒蛇 2.1.0 (x86_64)| (默认,2014 年 8 月 21 日,15:21:46) 键入 "copyright"、"credits" 或 "license" 以获取更多信息。

IPython 2.2.0 -- An enhanced Interactive Python.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.
In [1]: %run myplot

它没有使用字体。我在 Mac OS X 上使用 Anaconda Python。我的 rcParams 没有被读取。 ipython(使用 pylab 选项)是否使用不同的配置?如何设置我的 matplotlib 默认字体?

更加混乱,如果我在 ipython 中使用 plt.show(),它默认使用一种字体,但如果我从 ipython 中使用 plt.savefig(),它使用另一个。

据我所知,在绘图之前在代码本身中设置 rcParams 是最好的方法。 IPython 用它的内联做了很多魔术,这往往很奇怪。 IPython 可能会用自己的默认值践踏您的 rcParams,如果您在脚本中设置它们,解释器将再次读取它们。

from matplotlib import rcParams
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['Bitstream Vera Sans']
rcParams['font.serif'] = ['Bitstream Vera Sans']
rcParams["font.size"] = "40"

在脚本顶部试试这个并报告? 此外,您可以尝试 运行 您的脚本为 ipython script.py --pylab。问题也可能是您正在 IPython 之外更新您的脚本,它可能仍然是 运行ning 以前版本的字节编译代码。 (虽然机会不大)