基本的な使い方

 

まずは、以下を import します。

基本的なグラフ

最も原始的なグラフを書きます。

Matplotlib のグラフの構造ですが、画像のレイヤーのようにいくつかの画像を重ねて作られている、とするとイメージしやすいでしょう。まず Figure という土台、基本のウインドウ的なものを生成します。そしてその Figure の上に Axes という実際にグラフを描くための座標軸を持つ白紙を生成します。Figure の上には、複数の Axes を生成することもできます。

例:Figure の上に、3つの Axes

 

上記のコードの意味。

① 本来であれば Figure を生成して、その後 Axes 生成します。ただし、ほとんどの場合 Figure だけ生成して、Axes を作らない、ということはないので、Axes が一つの場合は、Figure と 一つの Axes を plt.subplots() で同時に生成できます。(plt.subplots() の引数()を指定すると、複数の Axes が生成されます。(後述))

② 白紙の Axes に数値をプロットしていきます。さきほど Matplotlib のグラフの構造は画像のレイヤーのようだ、と説明しましたが、この白紙の Axes に直接グラフを描く、というよりは、Figure → Axes の上に数値のプロットのレイヤーを更に重ねる、(Figure → Axes → プロットの3層)とイメージするといいでしょう。

②のax.plot([1, 2, 3, 4], [1, 4, 2, 3])では、
→ x = [1, 2, 3, 4],y = [1, 4, 2, 3] → (x, y) = (1,1),(2,4),(3,2),(4,3)

の4箇所の座標軸にプロットされ、特に指定がなければ座標軸から次の座標軸まで直線が引かれます。ということで先程のグラフが完成します。

グラフ再掲:

グラフの構造

・Figure と Axes は上記の通り。
・Title:グラフのタイトル
・Legend:line や marker の凡例
・Line:plot と plot を つなぐ線。直線や曲線。
・Markers:plot の形状
・grid:目盛線
・Spains:外枠線
・Major tick:主目盛り
・Minor tick:副、サブ目盛り
・Major tick label:主目盛りのラベル
・x, y axis label:x, y 軸のラベル

・Artist:グラフで表示されるものをすべて Artist と呼びます。

プロット関数へインプットできる型

プロット関数は、入力としてnumpy.arrayまたはnumpy.ma.masked_array、またはnumpy.asarrayに渡すことができるオブジェクトを想定しています。 pandasデータオブジェクトやnumpy.matrixなどの配列(「配列のような」)に類似したクラスは、意図したとおりに機能しない場合があります。一般的な規則は、プロットする前にこれらをnumpy.arrayオブジェクトに変換することです。ほとんどのメソッドは、dict、numpy.recarray、pandas.DataFrameなどのアドレス可能なオブジェクトも解析します。 Matplotlibを使用すると、dataキーワード引数を指定し、x変数とy変数に対応する文字列を渡すプロットを生成できます。

コーディングスタイル(Coding styles)

オブジェクト指向と pyplot スタイル

Matplotlib を使用するには基本的には2つの方法があります。
・オブジェクト指向スタイル
→ (the “object-oriented (OO:オーオー) style”)
Figure と Axes を作成し、それらに対してメソッドを呼び出します。

・pyplotスタイル

図形と軸を自動的に作成および管理するには pyplot を使用し、プロットには pyplot 関数を使用します。


どちらも完成したグラフに大きな違いは見られません。Matplotlib の公式ドキュメントでも両方のスタイルを使用しています。違いとしては、オブジェクト指向の目的の一つに「データの再利用」「修正のしやすさ」が挙げられます。このサイトでは、基本的なグラフの作成には「オブジェクト指向スタイル」を使用し、視覚的な確認を目的とするときは pyplot スタイルを使用する、ということにします。

 

まとめ

Matplotlib の基本的な使い方と各構成要素の名前と意味を、紹介しました。次はこの各構成要素をカスタマイズしていく pyplot tutorial に続きます。