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 pdb调试方法分享
Jan 21 Python
python输出指定月份日历的方法
Apr 23 Python
python非递归全排列实现方法
Apr 10 Python
python实现写数字文件名的递增保存文件方法
Oct 25 Python
python学习开发mock接口
Apr 28 Python
python的内存管理和垃圾回收机制详解
May 18 Python
Python Django简单实现session登录注销过程详解
Aug 06 Python
python切片(获取一个子列表(数组))详解
Aug 09 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
Python中常用的高阶函数实例详解
Feb 21 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
flask开启多线程的具体方法
Aug 02 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
用户的详细注册和判断
2006/10/09 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
2008/12/06 PHP
PHP递归算法的详细示例分析
2013/02/19 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
2017/03/02 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
js实现带有介绍的Select列表菜单实例
2015/08/18 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
简单解决Python文件中文编码问题
2015/11/22 Python
tensorflow 获取变量&打印权值的实例讲解
2018/06/14 Python
带你认识Django
2019/01/15 Python
基于Python实现扑克牌面试题
2019/12/11 Python
python爬虫爬取图片的简单代码
2021/01/18 Python
美国美妆网站:B-Glowing
2016/10/12 全球购物
PHP如何自定义函数
2016/09/16 面试题
J2EE相关知识面试题
2013/08/26 面试题
档案保密承诺书
2014/06/03 职场文书
停车场管理协议书范本
2014/10/08 职场文书
音乐教师求职信范文
2015/03/20 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers
Pytorch 使用tensor特定条件判断索引
2021/04/08 Python