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

之前我们学习的都是怎么在一个程序里面绘制多张图像,每张图像只有一个坐标轴。
可不可以在一张图像里面有多个坐标轴,每个坐标轴里面可以绘画不同的曲线。
当然可以,今天我们来学习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分割布局。

更新完毕
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值