【超简单超清楚】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
好多字体可以选呢~ 我们选择第一个字体册,然后选一个你喜欢的中文字体。
我随便选了一个翩翩体,设置FontProperties为这个路径,然后告诉你的中文label用这个字体即可。
效果如下:
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 的句子就行了!!!
另外,推荐一下 @Ray 的答案,我没有试,但是我觉得这是一个很不错的solution。
链接: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)使用示例
(3)这是它的github网站:
上一篇: php正则表达式中点怎么转义