在使用matplotlib进行可视化时,头疼的是如何正确显示中文。有时候你在百度之后尝试各种东西后,可能会遇到中文或者显示一堆无效的帧,所以这篇文章会提供三种解决方案,希望对大家有所帮助。首先我们要知道为什么不能正确显示中文?比如你用plt.title('VisualIllustration')加中文标题,matplotlib在输出文字的时候会去当前字体文件中找这些字,可惜找不到。所以本质上是matplotlib的中文字体文件没有设置正确。下面给出的三个方案中,我不能保证在你的电脑上能行得通(毕竟有时候环境造成的差异真的很麻烦),但是只要你有明确的方案(让matplotlib找中文字体文件正确)),必须这样做!1.麻烦但确定的解决方案。首先给出一个99%概率的方法,让你可以正确显示中文,但不是一劳永逸的方法,所以有点麻烦。上面我们说了不能输出中文是因为matplotlib找不到中文字体文件,怎么办?我们会强行指定一个中文字体文件,按住matplotlib的头部,让他遇到中文就读这个字体。比如我们先下载一个想要的中文字体文件,比如微软雅黑,下载到本地,复制它的绝对路径,然后用font_manager.FontProperties读取这个字体,定义为WRYH`importmatplotlib.pyplotaspltimportmatplotlibasmplWRYH=mpl.font_manager.FontProperties(fname='/opt/python_env/py_39_op/lib/python3.9/site-packages/matplotlib/mpl-data/fonts/ttf/SimHei.ttf')#需要SimHei字体后在输出中文的地方,加上fontproperties=WRYH就可以使用我们刚才读取的中文字体,比如设置中文标题`plt.title('VisualIllustration',fontproperties=WRYH)`中文是否正确?这个方法理论上是无视环境的,不管Mac还是Win,只要你的中文字体文件的路径没有问题,都会显示中文。但是正如标题所说:麻烦,只要需要输出中文,就得加上fontproperties=WRYH。如果要设置标题、图例、坐标轴、注释等多个中文,那么每次制作图片都需要多次复制粘贴,工作量会增加。所以这个方法适合应急或者电脑很忙没时间折腾其他方法的时候使用。
