使用matplotlib.pyplot中的三种方法画子图

本文所用包:

from matplotlib import pyplot as plt

import numpy as np

此文主要记录使用matplotlib.pyplot中的三个函数,主要结合代码展示效果:

 

一、plt.subplots

实例代码:

 1 from matplotlib import pyplot as plt
 2 import numpy as np
 3 
 4 x = np.linspace(1, 100, num= 25, endpoint = True)
 5 
 6 def y_subplot(x,i):
 7     return np.cos(i * np.pi *x)
 8 
 9 #使用subplots 画图
10 f, ax = plt.subplots(2,2)
11 #type(f) #matplotlib.figure.Figure
12 
13 style_list = ["g+-", "r*-", "b.-", "yo-"]
14 ax[0][0].plot(x, y_subplot(x, 1), style_list[0])
15 ax[0][1].plot(x, y_subplot(x, 2), style_list[1])
16 ax[1][0].plot(x, y_subplot(x, 3), style_list[2])
17 ax[1][1].plot(x, y_subplot(x, 4), style_list[3])
18 
19 plt.show()

注释:使用subplots会返回两个东西,一个是matplotlib.figure.Figure,也就是f,另一个是Axes object or array of Axes objects,也就是代码中的ax;

把f理解为你的大图,把ax理解为包含很多小图对象的array;所以下面的代码就使用ax[0][0]这种从ax中取出实际要画图的小图对象;画出的图如下所示;

二、plt.subplot;

实例代码:

#使用subplot画图
for i in  range(1,5):
    plt.subplot(2,2,i)
    plt.plot(x, y_subplot(x,i), style_list[i- 1])
plt.show()

plt.subplot函数的第一个参数和第二个参数分别制定了子图有几列和几行;这个和subplots的参数意思相同;第三个参数就是指定在那个子图上画图的顺序,分别是从左往右;慢慢体味subplot和subplots的区别吧;subplot方法画的图如下所示:

 

三、plt.add_subplots

实例代码:

fig = plt.figure()
for i in range(1,5):
    ax = fig.add_subplot(2,2,i)
    ax.plot(x, y_subplot(x,i), style_list[i -1])

plt.show()

add_subplot函数也就是向Figure画板中添加每一个子图

画出的图形如下所示:

 

posted @ 2018-06-28 18:53  尼牟  阅读(14383)  评论(0编辑  收藏  举报