美文网首页数据分析之路
Matplotlib中文乱码问题解决方案

Matplotlib中文乱码问题解决方案

作者: Mr_喵 | 来源:发表于2018-08-07 20:55 被阅读36次

    MatplotlibPython的一个2D绘图库,许多小伙伴第一次使用图表绘制时,会发现中文乱码或者小方块的情况

    原因是Matplotlib默认字体并不包含中文,所以必须设置为中文字体

    准备工作:

    • 系统:Windows
    • 环境管理器:Anaconda
    • IDE:Jupyter notebook

    1.编写如下代码,获取matplotlib包所在的配置文件的路径

    import matplotlib
    matplotlib.matplotlib_fname() #输出matplotlib包所在的配置文件的路径
    

    D:\Anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc

    2.根据上面的路径打开文件夹(根据自己实际的输出路径去操作)

    D:\Anaconda3\lib\site-packages\matplotlib\mpl-data\fonts\ttf

    3.加入中文字体


    把中文字体文件放到文件夹里
    • 打开文件后可以看到满屏的字体文件,但没有一个是支持中文的
    • 这时我们需要在网上下载一个中文字体,小伙伴们下载自己喜欢的字体,这里以SimHei为例
    • 把中文字体文件放到文件夹里

    到此,准备工作结束。解决方案有以下两种:

    一、简单粗暴型

    每次绘制图表前输入以下代码

    import matplotlib.pyplot as plt
    import seaborn as sns
    
    plt.rcParams['font.sans-serif'] = ['SimHei']  
    # Matplotlib中设置字体-黑体,解决Matplotlib中文乱码问题
    plt.rcParams['axes.unicode_minus'] = False    
    # 解决Matplotlib坐标轴负号'-'显示为方块的问题
    sns.set(font='SimHei')                        
    # Seaborn中设置字体-黑体,解决Seaborn中文乱码问题
    

    值得注意的是,输入的字体名称必须和上面准备工作中加入的字体文件名称一致

    二、一劳永逸型

    1.根据上面准备工作获取matplotlib包所在的配置文件的路径,打开matplotlibrc文件(以记事本方式或其他编辑器方式打开)

    D:\Anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc

    打开matplotlibrc文件.jpg

    2.找到#font.sans-senrif,去掉前面的#,并在后面写上在准备工作加入的中文字体的名称SimHei

    添加文字名称SimHei

    3.找到#axes.unicode_minus,去掉前面的#,并在改为False

    修改负号设置

    修改完毕后记得保存关闭,然后重新启动Jupyter notebook,等待奇迹的发生

    • 小伙伴们可以根据自己的情况,选择一种解决方案


    相关文章

      网友评论

        本文标题:Matplotlib中文乱码问题解决方案

        本文链接:https://www.haomeiwen.com/subject/ffqzvftx.html