LoginSignup
0
1

More than 3 years have passed since last update.

matplotlib 基礎 / fig と axes の違い

Last updated at Posted at 2020-01-19

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) の関係性イメージは以下。

image.png

引数

add_subplotの引数は、以下の用途で指定する。

引数 処理
1つ目 行数を指定
2つ目 列数を指定
3つ目 描画箇所を指定

1,2つ目で指定した行列数で先に生成した Figure を分割し、3番目で指定した箇所にグラフを描写する。

例えば、`add_subplot(3,3,5) は Figure を 3 x 3 で分割した真ん中のセルを指定する。
image.png

ちなみに、 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()

思考停止で雑なグラフを描写するとこんな感じ。
image.png

Reference

こちらの記事を参考にしています。
matplotlibの描画の基本 - figやらaxesやらがよくわからなくなった人向け

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1