美文网首页机器学习
机器学习之numpy和matplotlib学习(四)

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

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

    之前我们学习的都是怎么在一个程序里面绘制多张图像,每张图像只有一个坐标轴。
    可不可以在一张图像里面有多个坐标轴,每个坐标轴里面可以绘画不同的曲线。
    当然可以,今天我们来学习plt.subplot( )函数的使用。参看官方文档http://matplotlib.org/users/pyplot_tutorial.html
    先来说一下这个函数plt.subplot( )它与plt.plot( )相差了一个sub。sub的英文意思是子分块。
    先来讲一下代码:

    #plt.plot()函数里面有两个数组,第一个数组是x的取值,第二个数组是y的取值。
    #后面的‘ro’代表绘制出来的是圆点而不是一条直线。
    plt.plot([1,2,3,4], [1,4,9,16], 'ro')
    #plt.axis()函数是绘制时候x和y的取值范围,这里x是【0到6】,y是【0到20】
    plt.axis([0, 6, 0, 20])
    
    

    对上面讲解的完整演示代码如下:

    import matplotlib.pyplot as plt
    plt.plot([1,2,3,4], [1,4,9,16], 'ro')
    plt.axis([0, 6, 0, 20])
    plt.show()
    

    结果如下:


    这里写图片描述

    这里补充两点
    1.我们知道plt.axis()函数是绘制时候x和y的取值范围,这里x是【0到6】,y是【0到20】
    也可以分别设置x和y的绘制时候的取值范围:

    #对x设置绘制时候的取值范围。
    plt.xlim(0,6)
    #对x设置绘制时候的取值范围。
    plt.ylim(0,20)
    #等价于plt.axis([0, 6, 0, 20])
    

    2 .我们之前的plt.plot([1,2,3,4], [1,4,9,16], 'ro')中传入了两组数据,如果只传入一组数据的话,默认为y的数据。
    实践如下:

    import matplotlib.pyplot as plt
    plt.plot([1,4,9,16], 'ro')
    plt.axis([0, 6, 0, 20])
    plt.show()
    

    结果如下:


    这里写图片描述

    可以看到是有差别的。
    下面学习一下:subplot(numRows, numCols, plotNum)。
    图表的整个绘图区域被分成numRows行和numCols列。
    plotNum参数指定创建的图像对象所在的区域。
    如:(2,2,1)相当于把一个figure分成一个2x2的网格布局。plotNum等于1,也就是绘制的图像是网格布局的第一块区域。
    代码演示:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Author  : SundayCoder-俊勇
    # @File    : figure3.py
    
    import matplotlib.pyplot as plt
    import numpy as np
    
    x=np.linspace(-5,5,50)
    y1=2*x+1
    y2=x*x
    y3=x*x+2*x
    y4=x+1
    
    plt.figure()
    # 第一个子图
    plt.subplot(2,2,1)
    plt.plot(x,y1)
    plt.title("first subplot")
    # 第二个子图
    plt.subplot(2,2,2)
    plt.plot(x,y2)
    plt.title("second subplot")
    # 第三个子图
    
    plt.subplot(2,2,3)
    plt.plot(x,y3)
    plt.title("third subplot")
    # 第四个子图
    plt.subplot(2,2,4)
    plt.plot(x,y4)
    plt.title("Fourth subplot")
    
    plt.show()
    
    
    

    结果:


    这里写图片描述

    学习完毕
    这里补充一点。例如,plt.subplot(2,2,4)没有逗号分隔也可以的。
    可以变成plt.subplot(2,2,4)
    你试一下??
    一样可以,但是如果数字大于10的话就必须使用逗号分隔。
    一般我们用的最多的分隔是2*2网格,分割多了图像太小不好观察,到后面机器学习如果用到的话一般都是2x2分割布局。

    更新完毕

    相关文章

      网友评论

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

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