中文显示方块

下载SimHei.ttf字体

Mac需要先下载SimHei.ttf字体并安装,之后将SimHei.ttf拷贝到python安装路径/site-packages/matplotlib/mpl-data/fonts/ttf目录中

修改matplotlibrc

修改~python安装路径/site-packages/matplotlib/mpl-data/matplotlibrc文件。根据实际情况修改,找到如下两项,去掉前面的#,并在font.sans-serif冒号后面加上SimHei,保存退出。

1
2
3
font.family : sans-serif
font.sans-serif : SimHei, Bitstream Vera Sans, Lucida Grande,Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

同时将找到axes.unicode_minus,将True改为False,作用就是解决负号’-‘显示为方块的问题

代码加入

1
2
3
4
5
6
7
8
#matplotlib不会每次启动时都重新扫描所有的字体文件并创建字体索引列表,
# 因此在复制完字体文件之后,需要运行下面的语句以重新创建字体索引列表
import matplotlib as mpl
from matplotlib.font_manager import _rebuild
_rebuild()
#防止中文乱码问题
mpl.rcParams['font.sans-serif']=[u'SimHei']
mpl.rcParams['axes.unicode_minus']=False

在mac中的/Library/Fonts文件夹中,有很多种不同的字体,但是没有能够正确显示中文的SimHei.ttf,所以需要进行安装,那么需要按照上述方法下载后,就可以使得显示中文不会出现方格了。

RuntimeError: Python is not installed as a framework

问题

1
2
3
4
5
6
7
from matplotlib.backends import _macosx
RuntimeError: Python is not installed as a framework.
The Mac OS X backend will not be able to function correctly if Python is not installed as a framework.
See the Python documentation for more information on installing Python as a framework on Mac OS X.
Please either reinstall Python as a framework, or try one of the other backends.
If you are using (Ana)Conda please install python.app and replace the use of 'python' with 'pythonw'.
See 'Working with Matplotlib on OSX' in the Matplotlib FAQ for more information.

解决

1
2
3
vim ~/.matplotlib/matplotlibrc
# 加入
backend: TkAgg