Python中matplotlib中文乱码解决办法


Posted in Python onMay 12, 2017

Matplotlib是Python的一个很好的绘图包,但是其本身并不支持中文(貌似其默认配置中没有中文字体),所以如果绘图中出现了中文,就会出现乱码。

matplotlib绘制图像有中文标注时会有乱码问题。

Python中matplotlib中文乱码解决办法

实例代码:

import matplotlib
import matplotlib.pyplot as plt

#定义文本框和箭头格式
decisionNode =dict(boxstyle="sawtooth",fc="0.8")
leafNode=dict(boxstyle="round4",fc="0.8")
arrow_args=dict(arrowstyle="<-")

#绘制带箭头的注解
def plotNode(nodeTxt,centerPt,parentPt,nodeType):
  createPlot.axl.annotate(nodeTxt,xy=parentPt,xycoords='axes fraction',xytext=centerPt,textcoords='axes fraction',va="center",ha="center",bbox=nodeType,arrowprops=arrow_args)

def createPlot():
  fig =plt.figure(1,facecolor='white')
  fig.clf()
  createPlot.axl=plt.subplot(111,frameon=False)
  plotNode(U'决策点',(0.5,0.1),(0.1,0.5),decisionNode)
  plotNode(U'叶节点',(0.8,0.1),(0.3,0.8),leafNode)
  plt.show()

解决办法:代码中引入字体

import matplotlib.pyplot as plt
import matplotlib

#定义自定义字体,文件名是系统中文字体
myfont = matplotlib.font_manager.FontProperties(fname='C:/Windows/Fonts/simkai.ttf') 
#解决负号'-'显示为方块的问题 
matplotlib.rcParams['axes.unicode_minus']=False 

decisionNode =dict(boxstyle="sawtooth",fc="0.8")
leafNode=dict(boxstyle="round4",fc="0.8")
arrow_args=dict(arrowstyle="<-")

def plotNode(nodeTxt,centerPt,parentPt,nodeType):
  createPlot.axl.annotate(nodeTxt,xy=parentPt,xycoords='axes fraction',xytext=centerPt,textcoords='axes fraction',va="center",ha="center",bbox=nodeType,arrowprops=arrow_args,fontproperties=myfont)

def createPlot():
  fig =plt.figure(1,facecolor='white')
  fig.clf()
  createPlot.axl=plt.subplot(111,frameon=False)
  plotNode(U'决策点',(0.5,0.1),(0.1,0.5),decisionNode)
  plotNode(U'叶节点',(0.8,0.1),(0.3,0.8),leafNode)
  plt.show()

Python中matplotlib中文乱码解决办法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
python实现按任意键继续执行程序
Dec 30 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
Jan 04 Python
Python callable()函数用法实例分析
Mar 17 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
Python实现删除排序数组中重复项的两种方法示例
Jan 31 Python
python基础教程之while循环
Aug 14 Python
利用Python实现kNN算法的代码
Aug 16 Python
8段用于数据清洗Python代码(小结)
Oct 31 Python
django 模型字段设置默认值代码
Jul 15 Python
Python无损压缩图片的示例代码
Aug 06 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
使用Python对Csv文件操作实例代码
May 12 #Python
python 读取excel文件生成sql文件实例详解
May 12 #Python
Python实现读取并保存文件的类
May 11 #Python
Python使用defaultdict读取文件各列的方法
May 11 #Python
python中nan与inf转为特定数字方法示例
May 11 #Python
Python和C/C++交互的几种方法总结
May 11 #Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
May 11 #Python
You might like
德生9700DX电路分析
2021/03/02 无线电
如何在PHP中使用Oracle数据库(2)
2006/10/09 PHP
PHP原理之异常机制深入分析
2010/08/08 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
一段实用的php验证码函数
2016/05/19 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
2014/10/17 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
2019/07/04 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
python调用虹软2.0第三版的具体使用
2019/02/22 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
python interpolate插值实例
2020/07/06 Python
Python如何输出百分比
2020/07/31 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
2021/01/12 Python
纯CSS3打造动感漂亮时尚的扇形菜单
2014/03/18 HTML / CSS
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
房地产营销策划方案
2014/02/08 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
小学优秀学生评语
2014/12/29 职场文书
社区国庆节活动总结
2015/03/23 职场文书
生产车间管理制度
2015/08/04 职场文书
党风廉政建设心得体会
2019/05/21 职场文书