matplotlib画图中文不显示如何处理呢?
Admin 2022-09-15 群英技术资讯 1115 次浏览
这篇文章给大家分享的是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()
结果如下:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
使用python提供的exit()函数,linux平台和windows平台上的exit()函数执行结果,都可以正常退出。唯一的区别是,windows平台结束后多输出了一行空行。
python staticmethod 返回类,函数的静态方法。该方法不强制要求传递参数,如下声明一个静态方法:以上实例声明了静态方法 f,从而可以实现实例化使用 C().f(),当然也可以不实例化调用该方法 C.f()。
本章节主要向各位介绍python第一步学什么,我们以一个初步的斐波纳契数列作为例子展示Python3编程第一步。
python命令行传参有哪些方法?很多新手对于python命令行传参的方法可能不是很了解,这篇文章就主要给大家分享python命令行传参的方法,对新手学习有一定的借鉴价值,感兴趣的朋友可以参考一下,下面我们一起来学习吧。
从几年前开始学习编程直到现在,一直对程序中的异常处理怀有恐惧和排斥心理。之所以这样,是因为不了解。这次攻python,首先把自己最畏惧和
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008