Overview
matplotlib の figure, add_subplot が自分の中でおまじない化しているので、理解を深める意味で記事にまとめる。
以下の import を前提とする。
import matplotlib.pyplot as plt
Figure
matplotlib において、冒頭で以下のおまじないを記述することがよくある。
fig = plt.figure()
figure()
は、全体の描画領域を確保するFigureインスタンスを生成している。大きなキャンバスやホワイトボードを用意するイメージ。
引数
引数なしでも利用可能だが、以下の引数を指定できる。
引数 | 処理 |
---|---|
figsize | タプル形式で描画サイズを指定 単位はインチ |
dpi | 1インチあたりのドット数を指定 |
facecolor | 背景色を指定 |
edgecolor | 枠線色を指定 デフォルトの枠線幅が0.0なのでlinewidth必須 |
linewidth | 枠線幅を指定 |
Axes(add_subplot)
以下のおまじないも、冒頭でよく見る。
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
add_subplot
は、全体描画領域 Figure 上にグラフ描画領域を生成する。ホワイトボードに紙を貼って、その紙上にこれからグラフを描写するイメージ。
このとき生成されるインスタンスはAxesクラスと、少しややこしい。
Figure と Axes(subplot) の関係性イメージは以下。
引数
add_subplotの引数は、以下の用途で指定する。
引数 | 処理 |
---|---|
1つ目 | 行数を指定 |
2つ目 | 列数を指定 |
3つ目 | 描画箇所を指定 |
1,2つ目で指定した行列数で先に生成した Figure を分割し、3番目で指定した箇所にグラフを描写する。
例えば、`add_subplot(3,3,5) は Figure を 3 x 3 で分割した真ん中のセルを指定する。
ちなみに、 add_subplot(1,1,1)
は add_subplot(111)
と同義。
描写してみる
ここまで理解できれば、あとはadd_subplot
で生成した Axes 上でグラフを描写するだけである。
fig = plt.figure()
ax = fig.add_subplot(111)
ax.hist([1, 2, 3])
fig.show()
Reference
こちらの記事を参考にしています。
matplotlibの描画の基本 - figやらaxesやらがよくわからなくなった人向け