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中的rfind()方法使用详解
May 19 Python
动态规划之矩阵连乘问题Python实现方法
Nov 27 Python
python中正则表达式的使用方法
Feb 25 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
Pytorch中accuracy和loss的计算知识点总结
Sep 10 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
python读取ini配置文件过程示范
Dec 23 Python
pytorch实现focal loss的两种方式小结
Jan 02 Python
Python with标签使用方法解析
Jan 17 Python
Python 解析库json及jsonpath pickle的实现
Aug 17 Python
pandas处理csv文件的方法步骤
Oct 16 Python
python dir函数快速掌握用法技巧
Dec 09 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
再次研究下cache_lite
2007/02/14 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
jquery radio 操作代码
2011/03/16 Javascript
JS原型对象通俗&quot;唱法&quot;
2012/12/27 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
jquery轮播的实现方式 附完整实例
2016/07/28 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
Nodejs 搭建简单的Web服务器详解及实例
2016/11/30 NodeJs
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
老生常谈js数据类型
2017/08/03 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
2018/03/01 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
德国PC硬件网站:CASEKING
2016/10/20 全球购物
介绍一下Python中webbrowser的用法
2013/05/07 面试题
大学新生军训感言
2014/02/25 职场文书
超市中秋节促销方案
2014/03/21 职场文书
美术学专业求职信
2014/07/23 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL