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实现扫描指定目录下的子目录及文件的方法
Jul 16 Python
简单讲解Python中的闭包
Aug 11 Python
Python Requests安装与简单运用
Apr 07 Python
从零开始学Python第八周:详解网络编程基础(socket)
Dec 14 Python
tensorflow构建BP神经网络的方法
Mar 12 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
Feb 07 Python
python如何保证输入键入数字的方法
Aug 23 Python
Python threading的使用方法解析
Aug 28 Python
python 函数嵌套及多函数共同运行知识点讲解
Mar 03 Python
python with语句的原理与用法详解
Mar 30 Python
Python3如何使用多线程升程序运行速度
Aug 11 Python
Python 读取千万级数据自动写入 MySQL 数据库
Jun 28 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
基于mysql的bbs设计(五)
2006/10/09 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
php简单统计中文个数的方法
2016/09/30 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
浅谈PHP无限极分类原理
2019/03/14 PHP
JS中==与===操作符的比较
2009/03/21 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
Node.js中流(stream)的使用方法示例
2017/07/16 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
webpack是如何实现模块化加载的方法
2019/11/06 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
2020/08/07 Javascript
前端性能优化建议
2020/09/17 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
python操作kafka实践的示例代码
2019/06/19 Python
Flask-WTF表单的使用方法
2019/07/12 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
花店创业计划书范文
2014/02/07 职场文书
生日答谢词
2015/01/05 职场文书
读书笔记格式
2015/07/02 职场文书
2015年暑期见闻
2015/07/14 职场文书
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python