之前介紹了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的手冊里面都有,英文的,這里算是翻譯吧,順便總結一下。