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之re操作方法(详解)
Jun 14 Python
Python基于回溯法子集树模板解决取物搭配问题实例
Sep 02 Python
python操作oracle的完整教程分享
Jan 30 Python
Python动态生成多维数组的方法示例
Aug 09 Python
Pycharm配置远程调试的方法步骤
Dec 17 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
matplotlib事件处理基础(事件绑定、事件属性)
Feb 03 Python
用python修改excel表某一列内容的操作方法
Jun 11 Python
FP-growth算法发现频繁项集——发现频繁项集
Jun 24 Python
Python下载商品数据并连接数据库且保存数据
Mar 31 Python
Python必备技巧之函数的使用详解
Apr 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启动时候提示PHP startup的解决方法
2013/05/07 PHP
ThinkPHP中处理表单中的注意事项
2014/11/22 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
JavaScript 动态生成方法的例子
2009/07/22 Javascript
javascript定义函数的方法
2010/12/06 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
使用Python中的cookielib模拟登录网站
2015/04/09 Python
Python进阶篇之字典操作总结
2016/11/16 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
django解决跨域请求的问题详解
2019/01/20 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
酒吧创业计划书
2014/01/18 职场文书
总经理助理工作职责
2014/02/06 职场文书
计算机求职信
2014/07/02 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
经营场所证明范本
2015/06/19 职场文书
PHP获取学生成绩的方法
2021/11/17 PHP
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript