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解析xml文件实例分享
Dec 04 Python
Python函数嵌套实例
Sep 23 Python
wxPython事件驱动实例详解
Sep 28 Python
spyder常用快捷键(分享)
Jul 19 Python
python模块之sys模块和序列化模块(实例讲解)
Sep 13 Python
用scikit-learn和pandas学习线性回归的方法
Jun 21 Python
numpy和pandas中数组的合并、拉直和重塑实例
Jun 28 Python
python读取.mat文件的数据及实例代码
Jul 12 Python
Python线上环境使用日志的及配置文件
Jul 28 Python
Python对Tornado请求与响应的数据处理
Feb 12 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 Python
opencv检测动态物体的实现
Jul 21 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
thinkphp中memcache的用法实例
2014/11/29 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
YII框架模块化处理操作示例
2019/04/26 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
javascript引导程序
2008/10/26 Javascript
jquery 页面全选框实践代码
2010/04/02 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
去掉gridPanel表头全选框的小例子
2013/07/18 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
python处理xml文件的方法小结
2017/05/02 Python
10招!看骨灰级Pythoner玩转Python的方法
2019/04/15 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
sklearn+python:线性回归案例
2020/02/24 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
什么是组件架构
2016/05/15 面试题
专科毕业生学习生活的自我评价
2013/10/26 职场文书
保护环境倡议书
2014/04/14 职场文书
应聘英语教师求职信
2014/04/24 职场文书
好的旅游活动方案
2014/08/19 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
党员十八大心得体会
2014/09/12 职场文书
党政领导班子群众路线对照检查材料思想汇报
2014/09/27 职场文书
本科毕业论文导师评语
2014/12/31 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
Python 中random 库的详细使用
2021/06/03 Python
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers