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

    参考

  • 相关阅读:
    02 日志系统: 一条SQL 更新语句是如何执行的
    MySql 实战45讲笔记 : 01
    爬取boss直聘全国招聘数据并做可视化
    爬取豆瓣电影-长津湖短评
    尝试破解压缩文件
    将webp格式的图像批量转化成jpg
    将JPG格式图片转换成PNG格式
    几个学习编程的游戏网站
    检测网址连接有效性
    监控设备电池电量并发送通知
  • 原文地址:https://www.cnblogs.com/fonttian/p/7294812.html
Copyright © 2011-2022 走看看