• Pandas matplotlib 无法显示中文


    Pandas 无法显示中文问题 解决方案

    Pandas在绘图时,会显示中文为方块,主要原因有二:

    • matplotlib 字体问题
    • seaborn 字体问题

    只需要在文件开始动态设置字体配置就可以了,但是要注意,字体设置可能需要尝试多次,比如我一开始设置的win10中的’SamKi’,但是运行结果仍然是中文显示方块,后来我换成了’KaiTi’才正常显示的中文,具体原因可能只是某种字体获取失败而已.(本部分最后有win自带中文字体表)

    
    import matplotlib as mpl
    mpl.rcParams['font.sans-serif'] = ['KaiTi']
    mpl.rcParams['font.serif'] = ['KaiTi']
    # mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串
    
    import seaborn as sns
    sns.set_style("darkgrid",{"font.sans-serif":['KaiTi', 'Arial']})
    

    运行效果展示

    所有关于袁隆平教授的报告词频统计图

    win自带中文字体

    win默认自带中文字体

    matplotlib 解决方案一 动态修改配置

    代码和第一部分的前半部分一致

    
    import matplotlib as mpl
    mpl.rcParams['font.sans-serif'] = ['KaiTi']
    mpl.rcParams['font.serif'] = ['KaiTi']
    # mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串
    

    matplotlib 解决方案二 设置自定义字体

    这种方式较为复杂,博主不建议这种方式:

    
    import numpy as np
    import pylab as pl
    import matplotlib.font_manager as fm
    
    myfont = fm.FontProperties(fname=r'D:Fontssimkai.ttf') # 设置字体
    t = np.arange(0.0,2.0 * np.pi,0.01) # 自变量取值范围
    s = np.sin(t) # 计算正弦函数值
    z = np.cos(t) # 计算余弦函数值
    pl.plot(t,s,label='正弦')
    pl.plot(t,z,label='余弦')
    pl.xlabel('x-变量',fontproperties=myfont,fontsize=24) #设置标签
    pl.ylabel('y-正弦余弦函数值',fontproperties=myfont,fontsize=24)
    pl.title('sin-cos函数图像',fontproperties=myfont,fontsize=32) #图像标题
    pl.legend(prop=myfont)
    pl.show()
    

    运行结果展示
    sin-cos图像

    win自带字体库路径

    • C:WindowsFonts 内含大量字体
    • 注意在该文件夹下,字体文件的名字和其他文件夹下显示的不一致,请使用右键属性-常规中文件名,或者使用拷贝到其他文件夹后显示的字体文件名字

    参考

  • 相关阅读:
    SQLSERVER 分区分表
    SQLSERVER 执行计划
    SQL SERVER 自定义函数
    codeforces 414C C. Mashmokh and Reverse Operation(归并排序求逆序对)
    codeforces 414A A. Mashmokh and Numbers(素数筛)
    codeforces 414B B. Mashmokh and ACM(dp)
    bzoj-1012 1012: [JSOI2008]最大数maxnumber(线段树)
    codeforces 665E E. Beautiful Subarrays(trie树)
    codeforces 667D D. World Tour(最短路)
    codeforces 667C C. Reberland Linguistics(dp)
  • 原文地址:https://www.cnblogs.com/fonttian/p/7294812.html
Copyright © 2020-2023  润新知