本記事(記事カラム)には広告が含まれています。

fig, ax = plt.subplots() はなぜこう書くのか? Python の“複数の値を返す関数”を理解する

記事内に広告が含まれています。

matplotlib のサンプルコードでよく見かける

fig, ax = plt.subplots()

この書き方、Python 初心者にはかなり不思議に見えます。

  • 変数がカンマで並んでいる
  • 関数が 2 つの値を返している
  • しかもそれを一度に受け取っている

基礎コースを一通り学んだつもりでも、 この形は初見だと「え、何これ?」となりやすいポイントです。

この記事では、 plt.subplots の説明ではなく、Python の文法としての「複数の値を返す関数」 に焦点を当てて解説します。

DMM FX広告(差し込みタイプ)
広告(PR)|自分の投資スタイルを見つける。※タップで開閉
広告(PR)

DMM FXは、「最初の一歩を踏み出す場」として選ばれることがある

口座を開いてみた。取引してみた。思ったよりも難しかった。──そんな経験が、投資との距離感を知るきっかけになることもあります。


サービスを通じて、自分の投資スタイルを見つける。それは、確信ではなくても構いません。「試してみた」という実感が、次の選択の材料になることもあるからです。


DMM FXに関する詳細は、以下の広告(PR)リンクをご覧いただけます。


👇こちらは広告(PR)リンクバナーです

DMMFX

Python の関数は「複数の値を返せる」

Python の関数は、return複数の値を返すことができます。

例:

def get_position():
    return 100, 200

この関数は「100 と 200」を返します。

実は「タプルを返している」

Python は複数の値を返すとき、内部的には タプル を返しています。

pos = get_position()
print(pos)   # (100, 200)

つまり、返り値はこういう形:

(100, 200)

タプルは「同時代入」で分解できる

Python には アンパック(unpacking) という仕組みがあります。

x, y = (100, 200)

これで、

  • x = 100
  • y = 200

と自動的に分解されます。

これが「fig, ax = plt.subplots()」の正体

plt.subplots() は内部で 2つの値(Figure と Axes) を返しています。

つまり実際にはこう:

(fig, ax) = plt.subplots()

そして Python のアンパックにより、

  • fig → Figure(ウィンドウ)
  • ax → Axes(グラフを描く領域)

という形で受け取っているだけです。

例:自分で同じ仕組みを作ってみる

def create_pair():
    return "A", "B"

x, y = create_pair()

print(x)  # A
print(y)  # B

これと まったく同じ構造が matplotlib で起きています。

なぜこの書き方が便利なのか?

  • 返り値をまとめて受け取れる
  • 変数名を自由に付けられる
  • コードが読みやすくなる

特に matplotlib では、

  • fig:ウィンドウの操作(タイトル変更など)
  • ax:グラフ描画の操作

と役割が違うため、 2つの値を返して分けて使うのが合理的なのです。

まとめ

結論
書き方意味
return a, bタプル (a, b) を返す
x, y = func()タプルを分解して受け取る
fig, ax = plt.subplots()Figure と Axes を同時に受け取る

つまり、

fig, ax = plt.subplots() は、Python の「複数の値を返す関数」と「タプルのアンパック」の組み合わせで動いているだけ

ということです。

HR


人気ブログランキング