经常用matplotlib或者其他包画图之后无法输出中文图例,因此整理一下必成的方法。通常我们的系统里都是有中文字体的(毕竟我们其他很多地方都要用到中文),因此我们只是需要找到这些中文字体的路径从而调用即可。上代码!from matplotlib import font_manager# 这里我设置了我觉得可用的备选字体,大家可以添加或者删减candidates = [ "PingFang", "Heiti", "STHeiti", "Songti", "Hiragino", "Arial Unicode"]font_path = None # 先设置一个默认值# 然后开始一个一个去找有没有这个字体并输出目前电脑里有的字体所在路径for f in font_manager.findSystemFonts(fontpaths=None, fontext="ttf"): for name in candidates: if name.lower() in f.lower(): font_path = f break if font_path: breakif font_path is None: raise RuntimeError("未找到任何可用中文字体") # 如果没有找到可用的字体,那么就去下载相应字体就好,但是我觉得很少会一个都找不到。font = font_manager.FontProperties(fname=font_path)print("使用字体:", font_path) # 就可以输出字体所在路径如下:# 使用字体: /System/Library/Fonts/Hiragino Sans GB.ttc
font_path = "/System/Library/Fonts/STHeiti Medium.ttc"font = font_manager.FontProperties(fname=font_path)
plt.figure()plt.plot([1, 2, 3],[1, 4, 9], label="测试曲线")plt.title("中文显示测试", fontproperties=font)plt.legend(prop=font)plt.show()