matplotlibがそもそも何者かは他のサイトを当たってくだされ。ここではプログラムの流れを説明
1. 部品の組み立て
plot()とかsetTitle()とか
2. 実際のグラフ描写
show()とか
うん、シンプル極まりない
1.部品の組み立て
plot()やsetTitle()で図のアウトライン指定、データの読み込み等を行う。この時点では"出力非依存"に図を組み立ててく。ノリとしては脳内に図を組み立ててくノリ。
2. 実際のグラフ描写
最終的にグラフに描写したとき、その描写先は色々ある(jpegなど画像ファイル、PyQtなどのGUI、初期設定のmatplotlibのウインドetc)。その出先に合わせて実際に描写を行う。ノリとしては脳内のイメージを画面に表示したり絵に描いたりするノリ。
つまるところ、仮想の図を作って、それを実際に描写するという、ごく当たり前のステップを踏んでる。勘所は、それに合わせて関数やclass、module別れているということ。
1. 部品の組み立て
主に2通り。
1つ目はpyplotを使って手続き的に作る方法。plt.figure()、plt.setTitle()と関数を繰り返していってグラフ作成。比較的簡単に作れるし便利だけど、複雑なグラフは苦手
2つ目はオブジェクト志向な方法。わかる人はOOPで書くと言えばわかる。ただしconstructerやsetter()でコツコツ作るというよりは、helper methods(と公式のdocumentにある)というまとめてsetterな関数を使う(気がする)。helper methodを最初に使って基本的なinstance群を作成、あとはsetterで細かい調整、て感じ。
2. 実際のグラフ描写
Backendが担当(what is backend: http://matplotlib.org/faq/usage_faq.html)。より細かく分類すると、実際に描写をする"renderer"と描写される領域"canvas"に分けられる。二つの組み合わせで使うbackendが決まる(Qt5Aggとか)。
pyplotモジュールの関数による手続き型プログラミング、またはOOPでグラフを構成し、Backendがcanvas上にrendererで描写
When the figure is rendered, all of the artists are drawn to the canvas.
(http://matplotlib.org/faq/usage_faq.html)
matplotlib separates the concept of the renderer (the thing that actually does the drawing) from the canvas (the place where the drawing goes).
公式 User Guide, 下の方
http://matplotlib.org/users/intro.html