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 相关文章推荐
Python3.4 splinter(模拟填写表单)使用方法
Oct 13 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
Python中的random.uniform()函数教程与实例解析
Mar 02 Python
python re库的正则表达式入门学习教程
Mar 08 Python
python实现数据分析与建模
Jul 11 Python
Django Rest framework三种分页方式详解
Jul 26 Python
Python爬虫 bilibili视频弹幕提取过程详解
Jul 31 Python
python3 mmh3安装及使用方法
Oct 09 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
40行Python代码实现天气预报和每日鸡汤推送功能
Feb 27 Python
python怎么判断素数
Jul 01 Python
关于python中remove的一些坑小结
Jan 04 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
phpinfo 系统查看参数函数代码
2009/06/05 PHP
php获取数组长度的方法(有实例)
2013/10/27 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
2016/11/03 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
jquery $.each() 使用小探
2013/08/23 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
JavaScript学习笔记之JS函数
2015/01/22 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
jQuery中$原理实例分析
2018/08/13 jQuery
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
[00:35]可解锁地面特效
2018/12/20 DOTA
基于Python_脚本CGI、特点、应用、开发环境(详解)
2017/05/23 Python
python全局变量引用与修改过程解析
2020/01/07 Python
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
专营店会计助理岗位职责
2013/11/29 职场文书
全神贯注教学反思
2014/02/03 职场文书
请假条范文大全
2014/04/10 职场文书
模具专业自荐信
2014/05/29 职场文书
违纪检讨书范文
2015/01/27 职场文书
2016年教师党员创先争优承诺书
2016/03/24 职场文书
假期读书倡议书3篇
2019/08/19 职场文书
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android