美文网首页我爱编程机器学习
机器学习之numpy和matplotlib学习(五)

机器学习之numpy和matplotlib学习(五)

作者: SundayCoder | 来源:发表于2017-06-30 21:56 被阅读0次

    今天我们来学习在一个figure画子图的第二个方法。
    主要学习函数plt.subplot2grid()。
    plt.subplot2grid()函数也是用来画一个子图的,与昨天讲的plt.subplot()函数类似。

     plt.subplot2grid()共有四个参数
     参数解释:例如plt.subplot2grid((3,3),(0,0),rowspan=1,colspan=3,)
     (3,3)是把一个figure分成3x3的表格布局。
    (0,0)是第一个子图的开始位置【这个开始位置是以子图左上角的坐标为标准】
     rowspan是表示这个子图占几行,这里是1行。
     colspan是表示这个子图占几列,这里是三列。
    

    本次教学是话一个3*3的网络布局表格的子图。
    代码如下:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Author  : SundayCoder-俊勇
    # @File    : figure5.py
    import matplotlib.pyplot as plt
    import numpy as np
    
    plt.figure()
    x=np.linspace(-5,5,50)
    y=2*x+1
    # plt.subplot2grid()函数也是用来画一个子图的,与昨天讲的plt.subplot()函数类似。
    # plt.subplot2grid()共有四个参数
    # 参数解释:例如plt.subplot2grid((3,3),(0,0),rowspan=1,colspan=3,)
    # (3,3)是把一个figure分成3x3的表格布局。
    # (0,0)是第一个子图的开始位置【这个开始位置是以子图左上角的坐标为标准】
    # rowspan是表示这个子图占几行,这里是1行。
    # colspan是表示这个子图占几列,这里是三列。
    
    #这里plt.subplot2grid()返回第一个子图图像,我们设置为pc1,代表子图picture1.
    #这里区别于plt.subplot()函数,它是直接使用plt.plot()来绘制的,这里是使用pc1来绘制的。
    
    pc1=plt.subplot2grid((3,3),(0,0),rowspan=1,colspan=3,)
    pc1.plot(x,y);
    
    
    pc2=plt.subplot2grid((3,3),(1,1),rowspan=1,colspan=2,)
    pc2.plot(x,y);
    
    
    pc3=plt.subplot2grid((3,3),(2,2),rowspan=1,colspan=1,)
    pc3.plot(x,y);
    #这个函数的作用明天讲,不用管它,有和没有都可以。
    plt.tight_layout()
    
    plt.show()
    

    运行结果如下:


    这里写图片描述

    对于本次实验结果解释:
    创建的一个3*3的表格布局如下:


    这里写图片描述

    对于子图开始位置,之前也强调过是以子图左上角的坐标为标准。所以子图起点位置的x和y最大只能为2【不清楚的结合下列图片一起看】
    图画解释如下:


    这里写图片描述

    自己动手实践改变一下plt.subplot2grid( )函数的参数!!! 如:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Author  : SundayCoder-俊勇
    # @File    : figure5.py
    import matplotlib.pyplot as plt
    import numpy as np
    
    plt.figure()
    x=np.linspace(-5,5,50)
    y=2*x+1
    
    pc1=plt.subplot2grid((3,3),(0,0),rowspan=1,colspan=3,)
    pc1.plot(x,y);
    
    
    pc2=plt.subplot2grid((3,3),(1,0),rowspan=1,colspan=1,)
    pc2.plot(x,y);
    
    
    pc3=plt.subplot2grid((3,3),(2,0),rowspan=1,colspan=2,)
    pc3.plot(x,y);
    plt.tight_layout()
    plt.show()
    

    运行结果可是不一样了:


    这里写图片描述

    更新完毕##

    相关文章

      网友评论

        本文标题:机器学习之numpy和matplotlib学习(五)

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