使用 matplotlib 生成的图像中无法正常显示中文字符的解决方案 python matplotlib 您所在的位置:网站首页 matplotlib标注文字的函数 使用 matplotlib 生成的图像中无法正常显示中文字符的解决方案 python matplotlib

使用 matplotlib 生成的图像中无法正常显示中文字符的解决方案 python matplotlib

2022-05-16 11:33| 来源: 网络整理| 查看: 265

matplotlib 生成的图像中无法显示中文字符 开发环境 windows 8.1 64bit python 3.6.0 matplotlib 3.2.1 问题背景

使用 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 生成的图像中无法正常显示中文字符的解决方案 python matplotlib

原文:https://www.cnblogs.com/RickyZhu/p/13083045.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有