今天实习时需要使用python3中的matplotlib库绘制图像完成数据可视化。写完代码运行时发现有中文字符时对应的位置会无法正常显示,而是出现一个小框框。
查阅资料后了解到,matplotlib库的配置文件里面没有中文字体的对应信息,因此会产生这种现象。
一种做法是直接修改配置文件matplotlibrc,这样会较为麻烦,显得比较不方便。采用动态配置的方法可以参照以下代码:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False #负号显示
其中最后一行用于解决更改成中文字体后负号无法正常显示的问题。
注意:这种方法只在windows平台下适用。
另外也可以用python字体管理器的方式来处理这个问题:
myfont = matplotlib.font_manager.FontProperties(fname='C:/Windows/Fonts/msyh.ttf')
mpl.rcParams['axes.unicode_minus'] = False