文档章节

python matplotlib 中文字体设置

psyche_pdg
 psyche_pdg
发布于 2017/07/17 17:57
字数 291
阅读 17
收藏 0

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代替就可以了。

© 著作权归作者所有

共有 人打赏支持
psyche_pdg
粉丝 0
博文 4
码字总数 1697
作品 0
成都
高级程序员
私信 提问
python3使用matplotlib画图支持中文

python3使用matplotlib画图,因python3默认使用中unicode编码码,所以在写代码时不再需要写 plt.xlabel(u'性别')而是直接写plt.xlabel('性别'); 安装matplotlib时需要six,numpy,等组件。在w...

独钓渔
2015/03/30
0
0
matplotlib中文显示问题的解决

法一: 我发现上面的方法并不能完全使得sage支持中文,首先,sage对中文的支持体现在三个方面,matplotlib,sage自己的plot,latex。暂时我能做到的就是matplotlib这个,其他两个的中文支持我...

LCZ777
2013/11/20
0
0
matplotlib 中文字体问题

matplotlib 中文字体问题 简介 Matplotlib 是一个 Python 的绘制二维图形的模块。它利用了 克隆了许多 Matlab 中的函数, 用以帮助用户轻松地获得高质量的二维图形。Matplotlib 可以绘制多种...

雨中人X
2016/07/28
50
0
Python-Passing a matplotlib figure to HTML (flask)

最近因工作需要,需要将决策树生成的图在html上展示,给专业的人员用来做修改。有几个坑,现在记录下。 再尝试了R的rpart,scikit-learn的decision tree之后,发现效果都跟业务要求有差距,因...

JxKing
2016/04/16
0
0
【Python可视化】Matplotlib显示中文

导言 Matplotlib是一款强大的可视化工具,然而,其默认不支持中文的显示,其实,只要在显示的时候,指定好特定的中文字体,即可正常显示中文。 在下面的文件中,showavailablefont 函数打印出...

chenriwei2
2016/03/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7下Tomcat启动慢的原因及解决方案

CentOS7下Tomcat启动慢的原因及解决方案 现象   在一次CentOS 7系统中安装Tomcat,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的。Tocmat的S...

linjin200
16分钟前
1
0
表格单元格td设置宽度无效的解决办法

<!--如果这样设置无效,--> <td width="120">123456789000000000000</td><!--那么套个div再设置宽度就有效了。--> <td><div style="width: 60px;overflow: hidden;text-overflow: e......

SummerGao
16分钟前
1
0
06.Beetl标签函数include ---《Beetl视频课程》

本期视频实现了评论列表分页; 内容简介:使用了标签函数include完成分页抽取 一起学beetl目录:https://my.oschina.net/u/1590490?tab=newest&catalogId=6214598 作者:GK 标签函数 includ...

Gavin-King
20分钟前
1
0
Valid Anagram(leetcode242)

Given two strings s and t , write a function to determine if t is an anagram of s. Example 1: Input: s = "anagram", t = "nagaram"Output: true Example 2: Input: s = "rat", t = ......

woshixin
22分钟前
1
0
Parameter 'loginname' not found. Available parameters are [arg1, arg0, param

原来是这样写的 @Select("select * from user where login_name=#{loginName} and password=#{password}") User findWithLoginnameAndPassword(int loginName,String password); 一直报找不到......

kuchawyz
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部