之前介绍了pyplot里画简单的数据曲线,接下来介绍subplot相关的内容。
subplot是为了在一张图里放多个子图,与Matlab里的subplot类似。

pyplot是一个有状态的对象,包含了当前的图,画图区域,等。

pyplot通过调用subplot或者add_subplot来增加子图,

p1 = plt.subplot(211) 或者 p1 = plt.subplot(2,1,1), 表示创建一个2行,1列的图,p1为第一个子图,
然后在p1上画曲线,设置标注标题图例等,就可以使用p1来调用相关的函数,
与pyplot相同的是,可以直接使用pyplot画图,添加label,等,也可以是使用p1来做这些事情。
与pyplot不同的是,有一些函数的名字不太一样,添加坐标轴的标注的函数为set_xlabel和set_ylabel,
添加标题set_title,只是给子图添加标题,由于pyplot是一个有状态的对象,所以pyplot.title也是给当前子图添加标题,
如果要给整个图添加标题,可以使用pyplot.suptitle(text)。

#!/usr/bin/env python

import numpy as np
import matplotlib.pyplot as plt

def f1(t):
    return np.exp(-t)*np.cos(2*np.pi*t)

def f2(t):
    return np.sin(2*np.pi*t)*np.cos(3*np.pi*t)

t = np.arange(0.0,5.0,0.02)

plt.figure(figsize=(8,7),dpi=98)
p1 = plt.subplot(211)
p2 = plt.subplot(212)

p1.plot(t,f1(t),"g-",label="$f(t)=e^{-t} \cdot \cos (2 \pi t)$")
p2.plot(t,f2(t),"r-.",label="$g(t)=\sin (2 \pi t) \cos (3 \pi t)$",linewidth=2)

p1.axis([0.0,5.01,-1.0,1.5])

p1.set_ylabel("v",fontsize=14)
p1.set_title("A simple example",fontsize=18)
p1.grid(True)
p1.legend()

p2.axis([0.0,5.01,-1.0,1.5])
p2.set_ylabel("v",fontsize=14)
p2.set_xlabel("t",fontsize=14)
p2.legend()

plt.show()

最后得到的图如下,

这些在Matplotlib的手册里面都有,英文的,这里算是翻译吧,顺便总结一下。

 

版权声明:本文为Frandy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Frandy/archive/2012/09/27/python_pyplot_subplot.html