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中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
Python自定义scrapy中间模块避免重复采集的方法
Apr 07 Python
Python中的高级函数map/reduce使用实例
Apr 13 Python
介绍Python中的文档测试模块
Apr 28 Python
python实现字符串连接的三种方法及其效率、适用场景详解
Jan 13 Python
Python基于回溯法子集树模板解决m着色问题示例
Sep 07 Python
python实现对文件中图片生成带标签的txt文件方法
Apr 27 Python
python 获取字符串MD5值方法
May 29 Python
Python自定义一个类实现字典dict功能的方法
Jan 19 Python
在cmd中查看python的安装路径方法
Jul 03 Python
Python爬虫学习之翻译小程序
Jul 30 Python
Django文件上传与下载(FileFlid)
Oct 06 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之短标签开启设置
2013/06/17 PHP
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
JavaScript传递变量: 值传递?引用传递?
2011/02/22 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
微信 jssdk 签名错误invalid signature的解决方法
2019/01/14 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
js实现验证码干扰(动态)
2021/02/23 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
详解Python3 pickle模块用法
2019/09/16 Python
python实现电子词典
2020/03/03 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
迪士尼法国在线商店:shopDisney FR
2020/12/03 全球购物
校三好学生主要事迹
2014/01/11 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
经营目标责任书
2015/05/08 职场文书
让子弹飞观后感
2015/06/11 职场文书
水浒传读书笔记
2015/06/25 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
七个非常实用的Python工具包总结
2021/06/15 Python
oracle索引总结
2021/09/25 Oracle
Python如何用re模块实现简易tokenizer
2022/05/02 Python