【超简单超清楚】mac环境matplotlib的中文配置

大家知道,matplotlib库中没有中文字体

所以我们如果需要显示一些中文label就需要进行配置。

我的环境: mac +  homebrew安装的python3.5 + matplotlib 2.0 

参考了网上很多文章, 很多方法在我这里都不可行。

比如:

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

该方法在我这里并不可行


######################################################


亲测可行方法


1.  比较蠢,考诉matplotlib你要用哪个中文字体。

另外,不需要把这些字体copy到

/usr/local/lib/python3.5/site-packages/matplotlib/mpl-data/fonts/ttf/ 只需要告诉matplotlib路径就行了。

from matplotlib.font_manager import FontProperties
font=FontProperties(fname='/Library/Fonts/Hanzipen.ttc',size=10)
ax1.set_xticklabels(ability_labels,fontproperties=font)

另外就是这个设置字体,要找起来非常简单,打开Alfred,输入font

【超简单超清楚】mac环境matplotlib的中文配置_第1张图片


好多字体可以选呢~ 我们选择第一个字体册,然后选一个你喜欢的中文字体。

【超简单超清楚】mac环境matplotlib的中文配置_第2张图片

我随便选了一个翩翩体,设置FontProperties为这个路径,然后告诉你的中文label用这个字体即可。

效果如下:

【超简单超清楚】mac环境matplotlib的中文配置_第3张图片


2. 参考自知乎 https://www.zhihu.com/question/25404709  @hengchao0248 的回答

不需要下载添加任何字体!

import matplotlib
a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])

for i in a:
	print i


首先打印出你的font_manager的ttflist中所有注册的名字,你会得到246个注册名字,有常见的Times New Roman,也有不太常见的。

我大致看了一下,有一些看着就很像中文字体啊,比如这个STFangsong 仿宋啊有木有! Weibei SC 这个看着像北魏啥的

然后直接在python文件中加一条语句就ok了:

plt.rcParams['font.family']=['STFangsong']


对,没有错,选一个你喜欢的,设置font.family, 然后就OK了。那些 matplotlibrc 文件,~/.matplotlib/下的cache文件,统统不用改!!!只需要加一条设置font.family 的句子就行了!!!



【超简单超清楚】mac环境matplotlib的中文配置_第4张图片





另外,推荐一下 @Ray 的答案,我没有试,但是我觉得这是一个很不错的solution。

作者:Ray
链接:https://www.zhihu.com/question/25404709/answer/261291501
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

环境: Python 2.7

在Mac上和Windows上进行过测试,发现目前最简洁的方案应该是Pyplotz。基于matplotlib,无需修改任何设置,也可以和matplotlib,pandas,seaborn进行无缝衔接。关键是,跨平台还无需设置。目前支持 Python 2.7 和 Python 3。

(1)安装方式:

使用pip安装: pip install pyplotz

(2)使用示例

201528015329004/pyplotz

(3)这是它的github网站:

201528015329004/pyplotz





你可能感兴趣的:(工具,python)