Matplotlib绘图无法显示中文
机器想学习 人气:0发现问题
我在利用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:
总结
加载全部内容