zoukankan      html  css  js  c++  java
  • 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 内含大量字体
    • 注意在该文件夹下,字体文件的名字和其他文件夹下显示的不一致,请使用右键属性-常规中文件名,或者使用拷贝到其他文件夹后显示的字体文件名字

    参考

  • 相关阅读:
    介绍我的一位同事的开源RSS阅读器
    开源协议概谈[转载]
    编译错误CS1595
    JAVA和C#,武当和少林之争!
    IBatisNet之获取和操作SQL语句
    Linux能否靠架构取得胜利
    开源CMS Alfresco 1.0 发布
    在asp.net页面上得到Castle容器的实例
    IBatisNet 之 自动生成主关键字
    onvaluechange事件
  • 原文地址:https://www.cnblogs.com/fonttian/p/9162815.html
Copyright © 2011-2022 走看看