想繪制函數圖象,自然想到了python中強大的繪圖庫matplotlib。網上查詢資料,說是matplotlib下的模塊pyplot和pylab均可以,於是便產生疑問,這二者之間有何區別和聯系?於是展開調查。
網上大部分的博客文章對這二者的解釋基本千篇一律,也就是:
對Pyplot的解說:“方便快速繪圖matplotlib通過pyplot模塊提供了一套和MATLAB類似的繪圖API,將眾多繪圖對象所構成的復雜結構隱藏在這套API內部。”
對pylab的解說:“matplotlib還提供了一個名為pylab的模塊,其中包括了許多NumPy和pyplot模塊中常用的函數,方便用戶快速進行計算和繪圖,十分適合在IPython交互式環境中使用。”
最根本的方法,查看pylab的源碼:
可以得知,和網上概括的一樣,pylab包括了許多NumPy和pyplot模塊中常用的函數。
那么,具體該如何使用呢?根據pyplot源碼pyplot.py中的解釋部分就可得知:
(pylab combines pyplot with numpy into a single namespace. This is convenient for interactive work, but for programming it is recommended that the namespaces be kept separate)意思就是說pylab結合了pyplot和numpy,對交互式使用來說比較方便,既可以畫圖又可以進行簡單的計算。但是,對於一個項目來說,建議分別倒入使用,即:
import numpy as np
import matplotlib.pyplot as plt
而不是
import pylab as pl
附在使用matplotlib及相關模塊時可能用得上的資料網址:
Matplotlib.pdf http://matplotlib.org/Matplotlib.pdf
Python科學計算 http://hyry.dip.jp/tech/book/page/scipy/matplotlib.html