今天我们来学习在一个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()
运行结果可是不一样了:
这里写图片描述
网友评论