彻底解决Python里matplotlib不显示中文的问题
问题:
在使用matplotlib绘图的时候图标上的中文显示不正常

原因
没有给matplotlib指定一个它能知道的字体。matplotlib本身是支持中文的,只是都是以拼音标注的。
# 查询当前系统所有字体
from matplotlib.font_manager import FontManager
import subprocess
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)

解决办法
在开头加入两行代码
import csv
from matplotlib import pyplot as plt
# 新加入的两行代码
import matplotlib
matplotlib.rc("font",family='youyuan')
再跑一遍:
发现了新问题,前边的办法可以解决中文的显示问题,但是在axis存在负值的时候,负号显示不出来。
经过一番查询,目前较为好的解决办法是在文档前边加入这两句,同时解决这两个问题。
# 中文和负号的正常显示
plt.rcParams['font.sans-serif'] = [u'SimHei']
plt.rcParams['axes.unicode_minus'] = False
清雅

浙公网安备 33010602011771号