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 Tkinter简单布局实例教程
Sep 03 Python
python实现文件路径和url相互转换的方法
Jul 06 Python
Python简单计算数组元素平均值的方法示例
Dec 26 Python
Python3.5.3下配置opencv3.2.0的操作方法
Apr 02 Python
python自动截取需要区域,进行图像识别的方法
May 17 Python
Python3 文章标题关键字提取的例子
Aug 26 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
使用Python的Turtle绘制哆啦A梦实例
Nov 21 Python
PyQT5 emit 和 connect的用法详解
Dec 13 Python
python 图像插值 最近邻、双线性、双三次实例
Jul 05 Python
python 日志模块logging的使用场景及示例
Jan 04 Python
python基础之类属性和实例属性
Oct 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多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
php+highchats生成动态统计图
2014/05/21 PHP
php中namespace及use用法分析
2016/12/06 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
Javascript中replace()小结
2015/09/30 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
jquery编写日期选择器
2017/03/16 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
Vue项目中使用flow做类型检测的方法
2020/03/18 Javascript
微信小程序中的列表切换功能实例代码详解
2020/06/09 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
python33 urllib2使用方法细节讲解
2013/12/03 Python
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
Python中的yield浅析
2014/06/16 Python
Django 实现购物车功能的示例代码
2018/10/08 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
营销总监岗位职责范本
2014/02/26 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
世界遗产的导游词
2015/02/13 职场文书
初中政教处工作总结
2015/08/12 职场文书
反邪教教育心得体会
2016/01/15 职场文书
2016年法制宣传月活动总结
2016/04/01 职场文书
Python入门学习之类的相关知识总结
2021/05/25 Python
Element实现动态表格的示例代码
2021/08/02 Javascript
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android