在python中,默认情况下是无法显示中文的,如下代码:

  1. import matplotlib.pyplot as plt
  2. # 定义文本框和箭头格式
  3. decisionNode = dict(boxstyle = "sawtooth", fc = "0.8")
  4. leafNode = dict(boxstyle = "round4", fc = "0.8")
  5. arrow_args = dict(arrowstyle = "<-")
  6. # 绘制带箭头的注解
  7. def plotNode(nodeTxt, centerPt, parentPt, nodeType) :
  8. createPlot.ax1.annotate(nodeTxt, xy = parentPt, xycoords = 'axes fraction', xytext = centerPt, textcoords = 'axes fraction', va = 'center', ha = 'center', bbox = nodeType, arrowprops = arrow_args)
  9. def createPlot() :
  10. fig = plt.figure(1, facecolor='white')
  11. fig.clf()
  12. createPlot.ax1 = plt.subplot(111, frameon = False)
  13. plotNode(U'决策节点', (0.5, 0.1), (0.1, 0.5), decisionNode)
  14. plotNode(U'叶节点', (0.8, 0.1), (0.3, 0.8), leafNode)
  15. plt.show()
  16. createPlot()

得到图像如下:

产生中文乱码的原因就是字体的默认设置中并没有中文字体,所以我们只要手动添加中文字体的名称就可以了

手动增加如下代码

  1. from pylab import *
  2. mpl.rcParams['font.sans-serif'] = ['SimHei']

源代码修改如下:

  1. import matplotlib.pyplot as plt
  2. from pylab import *
  3. mpl.rcParams['font.sans-serif'] = ['SimHei']
  4. # 定义文本框和箭头格式
  5. decisionNode = dict(boxstyle = "sawtooth", fc = "0.8")
  6. leafNode = dict(boxstyle = "round4", fc = "0.8")
  7. arrow_args = dict(arrowstyle = "<-")
  8. # 绘制带箭头的注解
  9. def plotNode(nodeTxt, centerPt, parentPt, nodeType) :
  10. createPlot.ax1.annotate(nodeTxt, xy = parentPt, xycoords = 'axes fraction', xytext = centerPt, textcoords = 'axes fraction', va = 'center', ha = 'center', bbox = nodeType, arrowprops = arrow_args)
  11. def createPlot() :
  12. fig = plt.figure(1, facecolor='white')
  13. fig.clf()
  14. createPlot.ax1 = plt.subplot(111, frameon = False)
  15. plotNode(U'决策节点', (0.5, 0.1), (0.1, 0.5), decisionNode)
  16. plotNode(U'叶节点', (0.8, 0.1), (0.3, 0.8), leafNode)
  17. plt.show()
  18. createPlot()

最终得到图像

成功!

原文链接:http://blog.csdn.net/u013038499/article/details/52449768

【转】 Python 中,matplotlib绘图无法显示中文的问题的更多相关文章

  1. python 中matplotlib 绘图

    python 中matplotlib 绘图 数学建模需要,对于绘图进行简单学习 matpoltlib之类的包安装建议之间用anaconda 绘制一条y=x^2的曲线 #比如我们要绘制一条y=x^2的曲 ...

  2. Python 中,matplotlib绘图无法显示中文的问题

    在python中,默认情况下是无法显示中文的,如下代码: import matplotlib.pyplot as plt # 定义文本框和箭头格式 decisionNode = dict(boxsty ...

  3. ubuntu下使用matplotlib绘图无法显示中文label

    原因是字体导致的.大家的做法基本都是搞一个windows上的字体文件(simhei.ttf, 点我fq下载)然后刷新一下缓存文件. 只不过百度搜到第一篇CSDN的博客,写的很不靠谱(不是所有的CSDN ...

  4. python中matplotlib绘图封装类之折线图、条状图、圆饼图

    DrawHelper.py封装类源码: import matplotlib import matplotlib.pyplot as plt import numpy as np class DrawH ...

  5. python基础系列教程——Python中的编码问题,中文乱码问题

    python基础系列教程——Python中的编码问题,中文乱码问题 如果不声明编码,则中文会报错,即使是注释也会报错. # -*- coding: UTF-8 -*- 或者 #coding=utf-8 ...

  6. 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况

    一句python,一句R︱python中的字符串操作.中文乱码.NaN情况 先学了R,最近刚刚上手Python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句pytho ...

  7. python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)

    最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...

  8. python之matplotlib绘图基础

    Python之matplotlib基础 matplotlib是Python优秀的数据可视化第三方库 matplotlib库的效果可参考 http://matplotlib.org/gallery.ht ...

  9. Python中matplotlib模块解析

    用Matplotlib绘制二维图像的最简单方法是: 1.  导入模块 导入matplotlib的子模块 import matplotlib.pyplot as plt import numpy as ...

随机推荐

  1. mac linux 命令笔记 - 权限管理

    壹 权限 在使用命令行工具时,可能需要临时切换到管理员/root权限,如何切换呢? 正文 进入 root 权限: sudo -i 提示输入密码,这个密码就是锁屏的解锁密码. 在操作完成之后,使用 ex ...

  2. GDB 调试工具高级用法

    解决core核心文件转出问题 ulimit -c #查看core文件的生成开关,若为0则关闭 ulimit -c unlimited #打开开关,只在当前shell生效 sudo sh -c 'ech ...

  3. [BOI2004]Sequence

    题面描述 给定整数数组$a_1,a_2,a_3...a_n$,求递增数组$b_1,b_2,b_3...b_n$ 使得$|a_1 - b_1| + |a_2 - b_2| + ... + |a_n - ...

  4. [BZOJ4876][ZJOI2017]线段树

    没有用到任何算法,代码只有60+行,但是细节多如牛毛,各种分类讨论必须全部想清楚才行. https://www.cnblogs.com/xiejiadong/p/6811289.html #inclu ...

  5. 72.2801 LOL-盖伦的蹲草计划(广搜)

    时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 众所周知,LOL这款伟大的游戏,有个叫盖伦的英雄.他的伟大之处在 ...

  6. Codeforces Round #194 (Div. 1) A. Secrets 数学

    A. Secrets Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/333/problem/A ...

  7. poj 3468 A Simple Problem with Integers 线段树区间加,区间查询和

    A Simple Problem with Integers Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://poj.org/problem?i ...

  8. 使用Spring配置shiro时,自定义Realm中属性无法使用注解注入解决办法

    先来看问题    纠结了几个小时终于找到了问题所在,因为shiro的realm属于Filter,简单说就是初始化realm时,spring还未加载相关业务Bean,那么解决办法就是将springmvc ...

  9. 在 Linux 系统中安装Load Generator ,并在windows 调用

    原文地址:http://www.blogjava.net/qileilove/archive/2012/03/14/371861.html 由于公司需要测试系统的最大用户承受能力,所以需要学习使用lo ...

  10. Spring Data JPA -1-CRUD入门

    1) 引入jar包支持 <dependency> <groupId>org.springframework.boot</groupId> <artifactI ...