AI資格ドリル
資格を選ぶ

用語比較

OOスタイルとpyplotスタイルの違い|Axesを明示するか任せるか(Python3データ分析)

OOスタイルはFigureとAxesを明示的に作ってそのメソッドで描く方法、pyplotスタイルはpyplotにそれらを暗黙に作らせて管理させ、pyplotの関数で描く方法です。

Axesを自分で持つのがOO、持たずにplt.で呼ぶのがpyplotと見分けます。

この記事の根拠と出典

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

OOスタイルとpyplotスタイルの要点

OOスタイル

FigureとAxesを明示的に作り、Axesのメソッドで描く。ラベルは ax.set_xlabel・ax.set_ylabel・ax.set_title・ax.legend。公式は、複雑な図や再利用する関数・スクリプトに勧める。

pyplotスタイル

pyplotにFigureとAxesを暗黙に作らせ、pyplotの関数で描く。ラベルは plt.xlabel・plt.ylabel・plt.title・plt.legend。公式は、手早い対話的な作業に便利と説明する。

違いを表で確認

比較軸OOスタイルpyplotスタイル
FigureとAxesの扱いfig, ax = plt.subplots() のように、自分で作って ax を持つplt.figure() などで始め、Axesはpyplotが暗黙に作って管理する
描く・ラベルを付ける書き方ax.plot()、ax.set_xlabel()、ax.set_ylabel()、ax.set_title()、ax.legend()plt.plot()、plt.xlabel()、plt.ylabel()、plt.title()、plt.legend()
公式が向くと説明する場面複雑な図、大きなプロジェクトの一部として再利用する関数・スクリプト手早い対話的な作業
pyplotの関数の使い方Figureの作成には、OOスタイルでもpyplotの関数(plt.subplots など)を使う描画からラベル設定まで、pyplotの関数で一貫して書く

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

PR

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

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

01

手早くデータの形を確かめたい人

対話的に1枚だけ描く場面です。公式がpyplotスタイルを手早い作業に便利と説明しているので、plt.plot() や plt.xlabel() で素早く描けます。

02

同じ図を何度も作る関数やスクリプトを書く人

再利用する関数を書く場面です。公式がOOスタイルを勧めているので、Axesを引数で受け取って ax.plot() で描く形にします。

03

コードを見て、どちらのスタイルか問われて迷う人

Axesを変数で持ち、そのメソッドを呼んでいればOOスタイルです。plt. で始まる関数だけで描いていればpyplotスタイルです。

具体例で使い分ける

例 1

同じ図をOOスタイルで書く

公式のQuick start guideの例です。x = np.linspace(0, 2, 100) のデータで、線形・2乗・3乗の3本の線に、ラベルとタイトルと凡例を付けます。

  • fig, ax = plt.subplots() で、FigureとAxesを自分で作ります。
  • ax.plot() で3本の線を描き、ax.set_xlabel()、ax.set_ylabel()、ax.set_title()、ax.legend() で、ラベルとタイトルと凡例を付けます。
  • 公式のコメントのとおり、OOスタイルでもFigureの作成にはpyplotの関数を使います。

結論: 描画も設定も、すべて ax のメソッドです。Figureを作る plt.subplots() だけがpyplotの関数になります。

例 2

同じ図をpyplotスタイルで書く

上と同じ図を、公式が示すpyplotスタイルで書きます。

  • plt.figure() でFigureを作ります。Axesは明示せず、公式のコメントでは暗黙のAxesと説明されています。
  • plt.plot() で3本の線を描き、plt.xlabel()、plt.ylabel()、plt.title()、plt.legend() でラベルとタイトルと凡例を付けます。

結論: ax を一度も持たず、plt. で始まる関数だけで同じ図になります。

例 3

ラベル設定の書き方の対応

OOスタイルのコードを、pyplotスタイルに書き換える場面です。

  • ax.set_xlabel は plt.xlabel、ax.set_ylabel は plt.ylabel に対応します。
  • ax.set_title は plt.title、ax.legend は plt.legend に対応します。
  • OOスタイルのメソッドには set_ が付くものがあり、pyplotの関数には付かないと見分けられます。

結論: set_ の有無が目印です。ただし、legend はどちらも同じ名前です。

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

  1. 1

    Axesを変数で持っているかを見る

    fig, ax = plt.subplots() のようにAxesを持ち、そのメソッドを呼ぶならOOスタイルです。

  2. 2

    描く関数の呼び方を見る

    plt.plot()・plt.xlabel() のようにpyplotの関数だけで描いているなら、pyplotスタイルです。

  3. 3

    場面で選ぶ

    複雑な図や再利用する関数・スクリプトならOOスタイル、手早い対話的な作業ならpyplotスタイルが向きます(公式の説明)。

試験での見分け方

  • 1OOスタイルは、FigureとAxesを明示的に作り、そのメソッドを呼ぶ方法である。
  • 2pyplotスタイルは、pyplotにFigureとAxesを暗黙に作成・管理させ、pyplotの関数で描く方法である。
  • 3公式は、複雑な図や再利用する関数・スクリプトにはOOスタイルを勧める。
  • 4OOスタイルでも、Figureの作成にはpyplotの関数を使う。

誤答しやすい選択肢

OOスタイルでは、pyplotの関数を一切使わないと考える

修正: 公式のコメントに、OOスタイルでもFigureの作成には pyplot.figure(plt.subplots など)を使うとあります。

pyplotスタイルは古く、使ってはいけないと考える

修正: 公式は、pyplotスタイルは手早い対話的な作業にとても便利と説明しています。強く非推奨とされているのは、古い例にある from pylab import * のpylabインターフェースです。

ラベル設定の関数名は、どちらのスタイルでも同じだと考える

修正: OOスタイルは ax.set_xlabel・ax.set_ylabel・ax.set_title、pyplotスタイルは plt.xlabel・plt.ylabel・plt.title と、名前が違います。

確認問題

Q1FigureとAxesを明示的に作り、そのメソッドを呼んで描くのはどちらのスタイルか?

答え: OOスタイル(オブジェクト指向スタイル)

pyplotスタイルは、pyplotにFigureとAxesを暗黙に作成・管理させる方法です。

Q2公式が、複雑な図や再利用する関数・スクリプトに勧めるのはどちらか?

答え: OOスタイル

pyplotスタイルは、手早い対話的な作業に便利と説明されています。

Q3OOスタイルで x ラベルを付けるメソッドと、pyplotスタイルで付ける関数は?

答え: OOスタイルは ax.set_xlabel、pyplotスタイルは plt.xlabel

OOスタイルのラベル設定は set_ の付くメソッドです。

Q4公式が強く非推奨とするインターフェースは何か?

答え: from pylab import * によるpylabインターフェース

古い例にあるpylabインターフェースが強く非推奨です。pyplotスタイルが非推奨なのではありません。

到達チェック

  • OOスタイルとpyplotスタイルの違いを、Axesを明示するかどうかで説明できる
  • 公式がどちらをどの場面に勧めているかを言える
  • ax.set_xlabel と plt.xlabel のような対応を答えられる
  • 強く非推奨なのはpylabインターフェースだと区別できる

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

よくある質問

QOOスタイルとpyplotスタイルの違いは?

A

OOスタイルはFigureとAxesを明示的に作ってそのメソッドを呼ぶ方法、pyplotスタイルはpyplotにFigureとAxesを暗黙に作成・管理させる方法です。

Q公式はどちらを勧めている?

A

複雑な図や、大きなプロジェクトの一部として再利用する関数・スクリプトにはOOスタイルを勧めています。pyplotスタイルは手早い対話的な作業に便利と説明しています。

QOOスタイルでpyplotは使わない?

A

使います。OOスタイルでも、Figureの作成には plt.subplots() などのpyplotの関数を使います。

Qpylabは使ってよい?

A

from pylab import * によるpylabインターフェースは、公式が強く非推奨としています。

Qデータ分析試験の範囲?

A

本サイトの第5章Matplotlibの「入力データとコーディングスタイル」で扱います。出題の形式や範囲は、受験前に公式の案内で確認してください。

次に見る比較

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