AI資格ドリル
資格を選ぶ

用語比較

plt.figure()とplt.subplots()の違い|Axesの有無(Python3データ分析)

違いは、Axesが最初からあるかどうかです。公式のQuick start guideでは、plt.figure()が空のFigure、plt.subplots()がAxes付きのFigureです。

Python3データ分析試験の公式の出題範囲には、Matplotlibの節(6問)があります。Figure と Axes の作り方の出題の形式は、受験前に公式の案内で確かめてください。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。

plt.figure()とplt.subplots()の要点

plt.figure()

Axesのない空のFigureが返る。データを描く領域(Axes)は、あとから自分で追加する。

plt.subplots()

Axesが1つのFigureが返る。plt.subplots(2, 2) なら、2×2の格子に並んだ4つのAxesを持つFigureになる。

違いを表で確認

比較軸plt.figure()plt.subplots()
作られるもの(公式Quick start guide)fig = plt.figure():Axesのない空のFigurefig, ax = plt.subplots():Axesが1つのFigure
戻り値Figureだけを返すfig, ax = plt.subplots() のように、FigureとAxesの2つを返す
複数のAxesAxesはあとから追加して使うfig, axs = plt.subplots(2, 2) で、2×2の格子状に並んだAxesが最初から作られる
すぐ描けるかAxesがないので、そのままでは描く領域がない戻り値のax(Axes)に対して ax.plot() をすぐ呼べる
配置を指定したい場合Axesを自分で足すので、配置もそのとき自分で決める同じ「Axesも一緒に作る」仲間にsubplot_mosaicがあり、左に1つ・右に2つのような配置を指定できる

Python3エンジニア認定データ分析試験の学習に使う書籍(Amazon)

PR

ほかの資格を含む参考書・問題集の一覧を見る

どこで迷っているかを切り分ける

01

ふつうの1枚のグラフを描きたい人

fig, ax = plt.subplots() で、FigureとAxesを一度に作れます。公式のQuick start guideも、FigureとAxesを作る最も簡単な方法としてplt.subplots()を挙げています。

02

2×2のように複数のグラフを並べたい人

plt.subplots(2, 2) を使います。行の数と列の数を掛けた4つのAxesが作られます。

03

plt.figure() と plt.subplots() のどちらも「Figureを作る」ので同じだと思っている人

どちらもFigureを作りますが、Axesの有無が違います。呼び出しごとに、作られるAxesの数を数えて整理しておきます。

具体例で使い分ける

例 1

Axesの数を数える

公式のQuick start guideの3つの呼び出しを、Axesの数で比べる場面です。

  • plt.figure() はAxesのない空のFigureなので、Axesは0個です。
  • plt.subplots() はAxesが1つのFigureなので1個、plt.subplots(2, 2) は2×2の格子なので4個です。

結論: Axesの数は 0個・1個・4個。Figureは、どの呼び出しでも1つです。

例 2

戻り値の受け取り方を書き分ける

Axesに折れ線を描くコードを書く場面です。

  • plt.subplots() はFigureとAxesの2つを返すので、fig, ax = plt.subplots() と2つの変数で受け取ります。
  • そのあと ax.plot() で描き、plt.show() で表示します。Jupyterノートブックのようにセルの図を自動で表示する環境では、plt.show() は省略できます。

結論: 描く領域がほしいなら、plt.subplots() で受け取ったaxに対して描く。

問題文から答えを選ぶ手順

  1. 1

    必要なAxesの数を決める

    1つのグラフなのか、2×2のように複数なのかを先に決めます。

  2. 2

    呼び出しを選ぶ

    Axesも一緒にほしいならplt.subplots()(配置を指定したいときはsubplot_mosaic)。Axesのない空のFigureだけでよいならplt.figure()です。

  3. 3

    戻り値の変数を合わせる

    plt.subplots() の戻り値は fig と ax(複数なら axs)の2つ。plt.figure() の戻り値はFigureだけです。

試験での見分け方

  • 1Axesのない空のFigureはplt.figure()。
  • 2Axesが1つのFigureはplt.subplots()。
  • 32×2の格子状のAxesはplt.subplots(2, 2)。Axesは4つ。
  • 4配置を指定してAxesを作るならsubplot_mosaic。
  • 5plt.subplots() の戻り値は FigureとAxesの2つ。

誤答しやすい選択肢

plt.figure() の直後にAxesがあると考える

修正: plt.figure() はAxesのない空のFigureです。Axesは追加するか、plt.subplots() で一緒に作ります。

plt.subplots(2, 2) のAxesが2つだと考える

修正: 2×2の格子なので、Axesは4つです。行と列の数を掛けて数えます。

plt.subplots() の戻り値を1つの変数で受け取る

修正: plt.subplots() は FigureとAxesを返すので、fig, ax = plt.subplots() の形で受け取ります。

確認問題

Q1plt.figure() で作られる Figure に、Axes は含まれるか?

答え: 含まれない。Axesのない空のFigureになる

公式のQuick start guideでは、plt.figure() は an empty figure with no Axes と説明されています。

Q2fig, axs = plt.subplots(2, 2) で作られる Axes は何個か?

答え: 4個

2×2の格子状に並んだAxesが作られます。Figureは1つです。

Q3Axesの配置を「左に1つ、右に2つ」のように指定して作る関数は?

答え: subplot_mosaic

公式の例では、subplot_mosaic に配置を表す入れ子のリストを渡しています。

到達チェック

  • plt.figure() と plt.subplots() で、Axesの有無が違うと説明できる
  • plt.subplots(2, 2) のAxesの個数を数えられる
  • plt.subplots() の戻り値がFigureとAxesの2つだと説明できる

同じ資格で次に知りたいこと

よくある質問

Qplt.figure()とplt.subplots()の違いは何ですか?

A

Axesの有無です。Matplotlib公式のQuick start guideでは、plt.figure() は Axesのない空のFigure、plt.subplots() は Axesが1つのFigureを作ると説明されています。

Qplt.subplots(2, 2) のAxesはいくつできますか?

A

2×2の格子状に並んだ4つです。Figureは1つです。

Qplt.show() は必ず必要ですか?

A

公式のQuick start guideでは、Jupyterノートブックのように、コードセルで作った図を自動で表示する環境ではplt.show()を省略できると説明されています。

QPython3データ分析試験で問われますか?

A

公式の出題範囲にMatplotlibの節(6問)があります。Figureの作り方の出題の形式は、受験前に公式の案内で確認してください。

次に見る比較

執筆: AI資格ドリル編集部(運営者情報を見る)