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调用shell的方法
Nov 20 Python
自己使用总结Python程序代码片段
Jun 02 Python
python编写Logistic逻辑回归
Dec 30 Python
Python迭代器定义与简单用法分析
Apr 30 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
Django错误:TypeError at / 'bool' object is not callable解决
Aug 16 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
为什么黑客都用python(123个黑客必备的Python工具)
Jan 31 Python
Python print不能立即打印的解决方式
Feb 19 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
Jun 18 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
为PHP初学者的8点有效建议
2010/11/20 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
浅谈JavaScript的闭包函数
2016/12/08 Javascript
angular2中使用第三方js库的实例
2018/02/26 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
详解redux异步操作实践
2018/08/15 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
Vuex实现数据共享的方法
2019/12/20 Javascript
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
python时间整形转标准格式的示例分享
2014/02/14 Python
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
Django的models中on_delete参数详解
2019/07/16 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
食堂员工工作职责
2013/12/18 职场文书
房产委托公证书样本
2014/04/04 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
工作经验交流材料
2014/12/30 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
初中班干部工作总结
2015/08/10 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
Javascript 解构赋值详情
2021/11/17 Javascript
Python中with上下文管理协议的作用及用法
2022/03/18 Python
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL