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 相关文章推荐
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
May 22 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
Jan 12 Python
python基础之包的导入和__init__.py的介绍
Jan 08 Python
Python实现字典(dict)的迭代操作示例
Jun 05 Python
Python用字典构建多级菜单功能
Jul 11 Python
python实现简易学生信息管理系统
Apr 05 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
Dec 09 Python
python pyenv多版本管理工具的使用
Dec 23 Python
python集合能干吗
Jul 19 Python
Django中ORM的基本使用教程
Dec 22 Python
python opencv将多个图放在一个窗口的实例详解
Feb 28 Python
实例详解Python的进程,线程和协程
Mar 13 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 什么是PEAR?(第三篇)
2009/03/19 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
基于JQuery的6个Tab选项卡插件
2010/09/03 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
node网页分段渲染详解
2016/09/05 Javascript
bootstrap table插件的分页与checkbox使用详解
2017/07/23 Javascript
JavaScript面试出现频繁的一些易错点整理
2018/03/29 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
python爬虫爬取网页表格数据
2018/03/07 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
python实现一个猜拳游戏
2020/04/05 Python
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
2012/10/05 面试题
英语专业应届生求职信范文
2013/11/15 职场文书
大学生秋游活动方案
2014/02/17 职场文书
校优秀毕业生主要事迹
2014/05/26 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
承诺函格式模板
2015/01/21 职场文书
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle