matplotlib 生成的图像中无法显示中文字符的解决方法


Posted in Python onJune 10, 2020

前几天使用matplotlib 绘图的时候发现无法使用中文字符,所以找了个笔记,顺便分享给大家

开发环境

  • windows 8.1 64bit
  • python 3.6.0
  • matplotlib 3.2.1

问题背景

使用 matplotlib 绘制函数图像的时候,发现设置图像名称或图例需要汉字显示的时候只能得到空格

生成图像中的中文错误效果

matplotlib 生成的图像中无法显示中文字符的解决方法

原因分析

python中的matplotlib仅支持Unicode编码,默认是不显示中文的.

解决方案

解决方案1

python文件中添上一段语句

plt.rcParams['font.sans-serif']=['Simhei']

之后再次运行得出图像 

解决方案2

制定加载本地的字体文件

在python文件中导入matplotlib的字体控制方法

from matplotlib.font_manager import FontProperties

另设font变量存储设置好的属性

font = FontProperties(fname=r'C:\Windows\Fonts\simhei.ttf',size=14)

设置 title 内容时将 font的存储对象赋给 fontproperties 属性

plt.title(u'y=x 与 y=x^0.5 的函数图像比较',fontproperties = font)

修改源码后生成的图像

matplotlib 生成的图像中无法显示中文字符的解决方法

附件

修改前的 python 文件

import numpy as np
 import matplotlib.pyplot as plt

 x = np.linspace(0,100) # 设置自变量的取值[0,100]

 y1 = x
 y2 = x**0.5

 plt.figure()
 plt.plot(x,y1,label='y=x')
 plt.plot(x,y2,label='y=x^0.5',color='red')

 plt.title('y=x 与 y=x^0.5 的函数图像比较')

 plt.legend()
 plt.show()

经解决方案1修改后的源码

import numpy as np
 import matplotlib.pyplot as plt

 x = np.linspace(0,100) # 设置自变量的取值[0,100]

 y1 = x
 y2 = x**0.5

 plt.figure()
 plt.plot(x,y1,label='y=x')
 plt.plot(x,y2,label='y=x^0.5',color='red')

 plt.title('y=x 与 y=x^0.5 的函数图像比较')
 plt.rcParams['font.sans-serif']=['Simhei']

 plt.legend()
 plt.show()

经解决方案2修改后的源码

import numpy as np
 from matplotlib.font_manager import FontProperties
 import matplotlib.pyplot as plt

 x = np.linspace(0,100) # 设置自变量的取值[0,100]
 y1 = x
 y2 = x**0.5

 plt.figure()
 plt.plot(x,y1,label='y=x')
 plt.plot(x,y2,label='y=x^0.5',color='red')
 font = FontProperties(fname=r'C:\Windows\Fonts\simhei.ttf',size=14)

 plt.title(u'y=x 与 y=x^0.5 的函数图像比较',fontproperties = font)

 plt.legend()
 plt.show()

到此这篇关于matplotlib 生成的图像中无法显示中文字符的解决方法的文章就介绍到这了,更多相关matplotlib图像无法显示中文内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
详解Python中expandtabs()方法的使用
May 18 Python
Python 查看文件的编码格式方法
Dec 21 Python
selenium+python设置爬虫代理IP的方法
Nov 29 Python
python 读取竖线分隔符的文本方法
Dec 20 Python
对python中的控制条件、循环和跳出详解
Jun 24 Python
django foreignkey(外键)的实现
Jul 29 Python
Python中生成一个指定长度的随机字符串实现示例
Nov 06 Python
tensorflow 实现打印pb模型的所有节点
Jan 23 Python
python 如何区分return和yield
Sep 22 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
Jan 06 Python
Python OpenCV 图像平移的实现示例
Jun 04 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 24 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
Jun 10 #Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
Jun 10 #Python
浅谈Python中的字符串
Jun 10 #Python
Keras 使用 Lambda层详解
Jun 10 #Python
keras打印loss对权重的导数方式
Jun 10 #Python
Python xlrd模块导入过程及常用操作
Jun 10 #Python
keras-siamese用自己的数据集实现详解
Jun 10 #Python
You might like
PHP执行zip与rar解压缩方法实现代码
2010/12/05 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
拥抱模块化的JavaScript
2012/03/07 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
写给小白看的JavaScript异步
2017/11/29 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
Python中的文件和目录操作实现代码
2011/03/13 Python
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
Python算法之栈(stack)的实现
2014/08/18 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
Python简单实现控制电脑的方法
2018/01/22 Python
​如何愉快地迁移到 Python 3
2019/04/28 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
python利用xlsxwriter模块 操作 Excel
2020/10/14 Python
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
工艺工程师工作职责
2013/11/23 职场文书
办公室文员工作职责
2014/01/31 职场文书
课外小组活动总结
2014/08/27 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
大学生上课迟到检讨书
2014/10/15 职场文书
单位证明范文
2015/06/18 职场文书
详解MySQL连接挂死的原因
2021/05/18 MySQL