时间:2021-05-22
前几天使用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)修改源码后生成的图像
附件
修改前的 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图像无法显示中文内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
使用pythonpdfkit生成pdf文件中遇到中文乱码问题1.生成的文件名不能带有中文字符2.生成的pdf内容中文为乱码生成的文件名不能带有中文字符解决方法:
在ubuntu下利用matplotlib绘图的时候,图像上中文无法显示。以下是我的解决办法:1.下载中文字体simhei.ttf,网址为http://fontz
本文实例讲述了Python使用matplotlib绘图无法显示中文问题的解决方法。分享给大家供大家参考,具体如下:在python中,默认情况下是无法显示中文的,
本文实例讲述了PHP使用json_encode函数时不转义中文的解决方法。分享给大家供大家参考。具体方法如下:json_encode函数对于gbk中的中文字符是
由于编码原因,opencv3.2无法用imread\imwrite直接读写含有中文字符的图像路径,因此读写要用以下2个方法:importcv2ascimport