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中max函数用法实例分析
Jul 17 Python
python开发中module模块用法实例分析
Nov 12 Python
python3实现ftp服务功能(服务端 For Linux)
Mar 24 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
May 16 Python
Python数据集切分实例
Dec 08 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
Python使用get_text()方法从大段html中提取文本的实例
Aug 27 Python
Python @property及getter setter原理详解
Mar 31 Python
pytorch 计算ConvTranspose1d输出特征大小方式
Jun 23 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
基于PyInstaller各参数的含义说明
Mar 04 Python
Python中使用subprocess库创建附加进程
May 11 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
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
js文件中调用js的实现方法小结
2009/10/23 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
js loading加载效果实现代码
2009/11/24 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
页面加载完毕后滚动条自动滚动一定位置
2014/02/20 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
对于Python异常处理慎用“except:pass”建议
2015/04/02 Python
python optparse模块使用实例
2015/04/09 Python
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
python更新列表的方法
2015/07/28 Python
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
2018/02/18 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
python实发邮件实例详解
2019/11/11 Python
django使用graphql的实例
2020/09/02 Python
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
户籍证明的格式
2014/01/13 职场文书
岗位聘任书范文
2014/03/29 职场文书
贺卡寄语大全
2014/04/11 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
法律意见书范文
2015/05/20 职场文书
电台广播稿范文
2015/08/19 职场文书
七年级英语教学反思
2016/02/15 职场文书
iPhone13再次曝光
2021/04/15 数码科技