欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python matplotlib 中文字体设置

程序员文章站 2022-03-21 11:06:55
...

matplotlib是画图利器,可惜中文支持不够好,不设中文字体画出的图片里面的中文全是小框框,笔者也是google了许多次,尝试了好几种方法,终于弄对了。

思路就是找一个ttf文件,可以直接用Windows系统里面ttf文件,然后创建自己的font,将文字使用的font设置为自己创建的font就可以了。

具体如下

from matplotlib.font_manager import FontProperties

myfont = FontProperties(fname=os.path.join('STSONG.ttf')) //这里请写上自己的ttf路径

创建好了自己的font,剩下的就是把需要中文显示的地方设成myfont就可以了。

 

比如饼状图, 饼状图的每一块需要遍历出来单独设置

fig1, ax1 = plt.subplots()
pie, l_text, p_text = ax1.pie(fracs, colors=COLORS, explode=tuple(explodes), labels=labels, 
                      labeldistance=1.1, autopct='%1.2f%%', startangle=90, pctdistance=0.95)

for t in l_text:
    t.set_fontproperties(myfont)

 

x, y轴的字体这样设置

plt.xlabel('x zhou', fontproperties=myfont)
plt.ylabel('y zhou', fontproperties=myfont)

 

legend的字体这样设

plt.legend(loc=4, borderaxespad=0., prop=myfont)

是不是超简单, 只要找好了需要的ttf字体文件,将设字体的地方用myfont代替就可以了。

转载于:https://my.oschina.net/wupsyche/blog/1439241