• Python函数绘图与高等代数互融实例(一):正弦函数与余弦函数




    Python函数绘图与高等代数互融实例(一):正弦函数与余弦函数

    Python函数绘图与高等代数互融实例(二):闪点函数

    Python函数绘图与高等代数互融实例(三):设置X|Y轴|网格线

    Python函数绘图与高等代数互融实例(四):设置X|Y轴参考线|参考区域

    Python函数绘图与高等代数互融实例(五): 则线图综合案例 


    一: 正弦函数plot()绘图实例,中文字体显示问题 

    在用matplotlib进行绘图时,如果在绘制过程中会用到中文,则默认情况下会出现字体警告,中文字符显示为方框或乱码的形式

    D:\program_file_worker\python_source_work\SSO\pic\chapter01.py:27: UserWarning: Glyph 26412 (\N{CJK UNIFIED IDEOGRAPH-672C}) missing from current font. 

    我们可以看到在警告信息中提示“missing from current font”,直译就是“在当前字体中缺少(中文字符)”,大概含义就是默认的字体中不含中文字符。

    对于这类问题,核心就是设置绘制图片时的字体参数包含全部的需要用到的字符

    # 正弦函数
    
    import matplotlib.pyplot as plt
    import numpy as np
    
    from pylab import mpl
    
    '''
       使用matplotlib模块绘制图
       Figure 是一个画布
       linspace(0.5, 3.5, 100)函数是在0.5~3.5之间均匀地取100个数
       randn(100)表示在标准的正太分布中随机地取100个数
       
    '''
    # 设置中文显示字体
    mpl.rcParams["font.sans-serif"] = ["SimHei"]
    
    # 设置正常显示符号
    mpl.rcParams["axes.unicode_minus"] = False
    
    x = np.linspace(0.05, 20, 1000)
    
    y = np.sin(x)
    
    y1 = np.random.randn(1000)
    
    plt.scatter(x, y, label="正弦函数绘制实例")
    
    plt.legend()
    plt.show()
    

    二: 运行结果:

    D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\pic\chapter01.py 
    D:\program_file_worker\python_source_work\SSO\pic\chapter01.py:27: UserWarning: Glyph 26631 (\N{CJK UNIFIED IDEOGRAPH-6807}) missing from current font.
      plt.show()
    D:\program_file_worker\python_source_work\SSO\pic\chapter01.py:27: UserWarning: Glyph 35760 (\N{CJK UNIFIED IDEOGRAPH-8BB0}) missing from current font.
      plt.show()
    D:\program_file_worker\python_source_work\SSO\pic\chapter01.py:27: UserWarning: Glyph 22270 (\N{CJK UNIFIED IDEOGRAPH-56FE}) missing from current font.
      plt.show()

     

    三: 解决方案 

    添加下面两行代码:

    Python脚本中动态设置matplotlibrc,这样也可以避免由于更改配置文件而造成的麻烦,具体代码如下:
    # 设置中文显示字体
    mpl.rcParams["font.sans-serif"] = ["SimHei"]
    
    有时候,字体更改后,会导致坐标轴中的部分字符无法正常显示,此时需要更改axes.unicode_minus参数:
    
    # 设置正常显示符号
    mpl.rcParams["axes.unicode_minus"] = False

    注意: 

    rcParams修改 font.sans-serif 或 font.family 对应字体

    # 以下代码从全局设置字体为SimHei(黑体),解决显示中文问题【Windows】
    # 设置font.sans-serif 或 font.family 均可
    plt.rcParams['font.sans-serif'] = ['SimHei']
    # plt.rcParams['font.family']=['SimHei']
    # 解决中文字体下坐标轴负数的负号显示问题
    plt.rcParams['axes.unicode_minus'] = False 
    由于mac电脑默认没有SimHei(黑体)字体,大家可以下载安装该字体或者修改为系统自带的字体如Arial Unicode MS,如下:

    # 以下代码从全局设置字体为Arial Unicode MS,解决显示中文问题【mac】
    # 设置font.sans-serif 或 font.family 均可
    plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
    # plt.rcParams['font.family']=['Arial Unicode MS']
    # 解决中文字体下坐标轴负数的负号显示问题
    plt.rcParams['axes.unicode_minus'] = False 
    rc方法,其实和设置rcParams 基本等效

    # 设置font字典为 SimSun(宋体),大小为12(默认为10)
    font = {'family' : 'SimSun',
            'size'  : '12'}
    # 设置 字体
    plt.rc('font', **font)
    # 解决中文字体下坐标轴负数的负号显示问题        
    plt.rc('axes', unicode_minus=False) 
     

    四: 余弦函数plot()绘图实例

    # 余弦函数
    import matplotlib.pyplot as plt
    import numpy as np
    from pylab import mpl
    
    '''
       功能函数: 展现变量的趋势变化
       调用函数: plt.plot(x,y,ls="_",lw=2,label="plot figure"
       参数说明: 
          x轴上的数值
          y轴上的数值
          ls: 折线图的折线风格
          lw: 折线图的线条宽度
          label: 标记图形内容标签文本
    '''
    # 设置中文显示字体
    mpl.rcParams["font.sans-serif"] = ["SimHei"]
    
    # 设置正常显示符号
    mpl.rcParams["axes.unicode_minus"] = False
    x = np.linspace(0.05, 10, 1000)
    
    y = np.cos(x)
    
    plt.plot(x, y, ls='-', lw=2, label="余弦函数绘图实例")
    
    plt.legend()
    
    plt.show()
    

    五: 实例运行结果 

         

  • 相关阅读:
    C++的map用法
    第 42 章 RTC—实时时钟
    置业小技能:按揭相关事项
    C++学习笔记
    LaTeX Algorithm相关写法
    基于 SSM 框架的旅游文化管理平台
    掌握MT4交易平台:解决你常见疑惑,提升操作技巧
    Pytorch在训练时冻结某些层使其不参与反向传播
    Open vSwitch with DPDK
    微服务与SpringCloud
  • 原文地址:https://blog.csdn.net/u014635374/article/details/133163879