Python利用Matplotlib绘图无法显示中文字体的解决方案

 更新时间:2022年04月28日 10:22:21   作者:机器想学习  
在很长一段时间里用Python绘图,matplotlib都不能很好的显示中文,下面这篇文章主要给大家介绍了关于Python利用Matplotlib绘图无法显示中文字体的解决方案,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

发现问题

我在利用Pycharm中的matplotlib库进行绘图的时候,出现了一个问题,当我将所绘的图的横,纵坐标,希望加上一个中文描述的时候,比如,'横坐标','纵坐标'类似这样的描述方法。出现了很多人都会出现的一个问题。

import matplotlib.pyplot as plt
 
squares = [1, 4, 9, 16, 25]
fig, ax = plt.subplots()
ax.plot(squares, linewidth=3)
#设置图表标题并给坐标轴加上标签。
ax.set_title("主题", size=14)
ax.set_xlabel("横坐标", size=14, color='red')
ax.set_ylabel("纵坐标", size=14, color='red')
 
ax.tick_params(axis='both', labelsize=14)
plt.show()

结果不出意外成为了这样

最开始以为是我的pycharm软件的语言配置出现了,问题,后来左改一下,右改一下,发现并没有什么作用,喜欢对问题刨根问底的我,查询很多资料发现出现这样的问题是因为Matplotlib库中没有与所输入的中文字符匹配的语言,所以无法正常显示中文,所以在这里把解决方案分享给大家。

pycharm显示的错误如下:

UserWarning: Glyph 32437 (\N{CJK UNIFIED IDEOGRAPH-7EB5}) missing from current font.
  FigureCanvasAgg.draw(self)

解决方式:

首先应该查询一下matplotlib中拥有哪些语言。可以通过以下代码实现:

from matplotlib.font_manager import FontManager
mpl_fonts = set(f.name for f in FontManager().ttflist)
print('all font list get from matplotlib.font_manager:')
for f in sorted(mpl_fonts):
    print('\t' + f)

然后软件显示结果中我们可以发现一系列包含中文的语言格式,例如Microsoft YaHei,YouYuan等

对于这个问题我就比较疑惑了,既然他有最后却无法成功显示,废话不多说,直接上干货,既然他有这种语言,那么我们在程序里,将他设置成包含中文语言就可以,实现方式如下:

import matplotlib
matplotlib.rc("font", family='Microsoft YaHei')

这两行代码,就将显示图片时的语言设置成为了 Microsoft YaHei,也就是我们电脑里面常用的微软雅黑这种字体

运行程序,结果不出所料地显示了中文:

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rc("font", family='Microsoft YaHei')
 
squares = [1, 4, 9, 16, 25]
fig, ax = plt.subplots()
ax.plot(squares, linewidth=3)
#设置图表标题并给坐标轴加上标签。
ax.set_title("主题", size=14)
ax.set_xlabel("横坐标", size=14, color='red')
ax.set_ylabel("纵坐标", size=14, color='red')
 
ax.tick_params(axis='both', labelsize=14)
plt.show()

结果如下:

参阅文献: https://www.jb51.net/article/246372.htm

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

总结

到此这篇关于Python利用Matplotlib绘图无法显示中文字体的解决方案的文章就介绍到这了,更多相关Matplotlib绘图无法显示中文内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python调用api实例讲解

    python调用api实例讲解

    在本篇内容里小编给大家分享的是一篇关于python调用api实例讲解内容,有兴趣的朋友们可以参考下。
    2021-04-04
  • django实现模型字段动态choice的操作

    django实现模型字段动态choice的操作

    这篇文章主要介绍了django实现模型字段动态choice的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python基于OpenCV模板匹配识别图片中的数字

    python基于OpenCV模板匹配识别图片中的数字

    这篇文章主要介绍了python基于OpenCV模板匹配识别图片中的数字,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • 基于python plotly交互式图表大全

    基于python plotly交互式图表大全

    今天小编就为大家分享一篇基于python plotly交互式图表大全,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 基于Python实现一个简易的数据管理系统

    基于Python实现一个简易的数据管理系统

    为了方便的实现记录数据、修改数据没有精力去做一个完整的系统去管理数据。因此,在python的控制台直接实现一个简易的数据管理系统,包括数据的增删改查等等。感兴趣的可以跟随小编一起学习一下
    2021-12-12
  • 利用Python自动监控网站并发送邮件告警的方法

    利用Python自动监控网站并发送邮件告警的方法

    这篇文章介绍的是通过定时执行python脚本,可以实现定期批量访问网站,如果发现网站打不开,第一时间发邮件到管理员邮箱进行预警。有需要的可以参考借鉴。
    2016-08-08
  • 使用Python paramiko模块利用多线程实现ssh并发执行操作

    使用Python paramiko模块利用多线程实现ssh并发执行操作

    ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography)。这篇文章主要介绍了使用Python paramiko模块利用多线程实现ssh并发执行操作,需要的朋友可以参考下
    2019-12-12
  • HTML的form表单和django的form表单

    HTML的form表单和django的form表单

    这篇文章主要介绍了HTML的form表单和django的form表单,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python中使用正则表达式的后向搜索肯定模式(推荐)

    python中使用正则表达式的后向搜索肯定模式(推荐)

    这篇文章主要介绍了python里使用正则表达式的后向搜索肯定模式,本文通过代码介绍的非常详细,包括语法介绍,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-11-11
  • Python中的 if 语句及使用方法

    Python中的 if 语句及使用方法

    这篇文章主要介绍了Python中的 if 语句及使用方法,包括条件测试、if -else 语句、if -elif-else 语句以及使用 if 语句处理列表操作,下面内容详细介绍组要的小伙伴可以参考一下
    2022-03-03

最新评论