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之复习if语句
Oct 02 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
Nov 04 Python
pymongo实现控制mongodb中数字字段做加法的方法
Mar 26 Python
python在控制台输出进度条的方法
Jun 20 Python
pandas series序列转化为星期几的实例
Apr 11 Python
提升Python效率之使用循环机制代替递归函数
Jul 23 Python
Django Admin中增加导出Excel功能过程解析
Sep 04 Python
Python自动化完成tb喵币任务的操作方法
Oct 30 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
Python如何基于Tesseract实现识别文字功能
Jun 05 Python
解决Python3.8运行tornado项目报NotImplementedError错误
Sep 02 Python
python实现自定义日志的具体方法
May 28 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
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
2015/10/23 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
JS 继承实例分析
2008/11/04 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
JS实现类似51job上的地区选择效果示例
2016/11/17 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
微信JS SDK接入的几点注意事项(必看篇)
2017/06/23 Javascript
bootstrap+jquery项目引入文件报错的解决方法
2018/01/22 jQuery
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
基于Python和PyYAML读取yaml配置文件数据
2020/01/13 Python
Python tkinter和exe打包的方法
2020/02/05 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
PHP数据运算类型都有哪些
2013/11/05 面试题
final, finally, finalize的区别
2012/03/01 面试题
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
制冷与电控专业应届生求职信
2013/11/11 职场文书
党员干部承诺书范文
2014/03/25 职场文书
《老山界》教学反思
2014/04/08 职场文书
学校搬迁方案
2014/06/15 职场文书
党的群众路线剖析材料
2014/10/09 职场文书
新娘婚礼致辞
2015/07/27 职场文书
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android