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处理python编码问题
Mar 13 Python
Python中用max()方法求最大值的介绍
May 15 Python
详解python函数传参是传值还是传引用
Jan 16 Python
纯python实现机器学习之kNN算法示例
Mar 01 Python
numpy.std() 计算矩阵标准差的方法
Jul 11 Python
浅谈python新式类和旧式类区别
Apr 26 Python
在Python函数中输入任意数量参数的实例
Jul 16 Python
Python logging设置和logger解析
Aug 28 Python
django的模型类管理器——数据库操作的封装详解
Apr 01 Python
Scrapy 配置动态代理IP的实现
Sep 28 Python
Python+OpenCV图像处理—— 色彩空间转换
Oct 22 Python
Python Selenium库的基本使用教程
Jan 04 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模板引擎Smarty内建函数详解
2016/04/11 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
javascript 拖放效果实现代码
2010/01/22 Javascript
js函数的引用, 关于内存的开销
2012/09/17 Javascript
JavaScript快速检测浏览器对CSS3特性的支持情况
2012/09/26 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
移动开发之自适应手机屏幕宽度
2016/11/23 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
[09:37]DOTA2卡尔工作室 英雄介绍圣堂刺客篇
2013/06/13 DOTA
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
Python实现快速计算词频功能示例
2018/06/25 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
超市端午节活动方案
2014/01/23 职场文书
2014年学生会生活部工作总结
2014/11/07 职场文书
2014年仓管员工作总结
2014/11/18 职场文书
升学宴家长答谢词
2015/09/29 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
Oracle11g R2 安装教程完整版
2021/06/04 Oracle