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之hello world
May 21 Python
Python 实现字符串中指定位置插入一个字符
May 02 Python
python实现求两个字符串的最长公共子串方法
Jul 20 Python
用Python读取几十万行文本数据
Dec 24 Python
python 读取Linux服务器上的文件方法
Dec 27 Python
python实现按行分割文件
Jul 22 Python
opencv resize图片为正方形尺寸的实现方法
Dec 26 Python
python实现在一个画布上画多个子图
Jan 19 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
Dec 14 Python
pygame面向对象的飞行小鸟实现(Flappy bird)
Apr 01 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 Python
Python基础之函数嵌套知识总结
May 23 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
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
浅谈PHP的反射机制
2016/12/15 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
几种响应式文字详解
2017/05/19 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
JS学习笔记之闭包小案例分析
2019/05/29 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
Python最基本的输入输出详解
2015/04/25 Python
实例说明Python中比较运算符的使用
2015/05/13 Python
python生成随机图形验证码详解
2017/11/08 Python
django 多数据库及分库实现方式
2020/04/01 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
python numpy库np.percentile用法说明
2020/06/08 Python
通过实例解析Python文件操作实现步骤
2020/09/21 Python
three.js模拟实现太阳系行星体系功能
2019/09/03 HTML / CSS
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
四好少年事迹材料
2014/01/12 职场文书
原材料检验岗位职责
2014/03/15 职场文书
岗位廉政承诺书
2014/03/27 职场文书
老公保证书范文
2014/04/29 职场文书
战友聚会致辞
2015/07/28 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
Java版 单机五子棋
2022/05/04 Java/Android