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

来源:互联网 发布:海量数据存储 编辑:程序博客网 时间:2024/06/06 00:28

今天我们来学习在一个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.pyimport matplotlib.pyplot as pltimport numpy as npplt.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.pyimport matplotlib.pyplot as pltimport numpy as npplt.figure()x=np.linspace(-5,5,50)y=2*x+1pc1=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()

运行结果可是不一样了:
这里写图片描述

更新完毕