花开清香

彻底解决Python里matplotlib不显示中文的问题

问题:

在使用matplotlib绘图的时候图标上的中文显示不正常

image-20210324221647496

原因

没有给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)

image-20210324221904874

解决办法

在开头加入两行代码

import csv
from matplotlib import pyplot as plt
# 新加入的两行代码
import matplotlib
matplotlib.rc("font",family='youyuan')

再跑一遍:

image-20210324222103306

发现了新问题,前边的办法可以解决中文的显示问题,但是在axis存在负值的时候,负号显示不出来。

经过一番查询,目前较为好的解决办法是在文档前边加入这两句,同时解决这两个问题。

# 中文和负号的正常显示
plt.rcParams['font.sans-serif'] = [u'SimHei']
plt.rcParams['axes.unicode_minus'] = False
posted @ 2021-03-24 22:22  兰花兰  阅读(1484)  评论(0)    收藏  举报