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 相关文章推荐
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
python MySQLdb Windows下安装教程及问题解决方法
May 09 Python
总结Python编程中三条常用的技巧
May 11 Python
Pycharm学习教程(7)虚拟机VM的配置教程
May 04 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
matplotlib subplots 调整子图间矩的实例
May 25 Python
python3.6使用pymysql连接Mysql数据库
May 25 Python
python障碍式期权定价公式
Jul 19 Python
Tensorflow 卷积的梯度反向传播过程
Feb 10 Python
Python timeit模块原理及使用方法
Oct 10 Python
详解Python中的文件操作
Jan 14 Python
python+pytest接口自动化之token关联登录的实现
Apr 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
高分R级DC动画剧《哈莉·奎茵》第二季正式预告首发
2020/04/09 欧美动漫
PHP+JS+rsa数据加密传输实现代码
2011/03/23 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
php基于单例模式封装mysql类完整实例
2016/10/18 PHP
php array_map()函数实例用法
2021/03/03 PHP
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
Jquery AutoComplete自动完成 的使用方法实例
2010/03/19 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
2014/06/20 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
JS中promise化微信小程序api
2018/04/12 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
原生js滑动轮播封装
2020/07/31 Javascript
Python中针对函数处理的特殊方法
2014/03/06 Python
python3 实现的人人影视网站自动签到
2016/06/19 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
Python3计算三角形的面积代码
2017/12/18 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
python中列表的切片与修改知识点总结
2019/07/23 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
python 基于wx实现音乐播放
2020/11/24 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
高中课前三分钟演讲稿
2014/09/13 职场文书
员工教育培训协议书
2014/09/27 职场文书
感谢信怎么写
2015/01/21 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
vue2实现provide inject传递响应式
2021/05/21 Vue.js