「Matplotlibはグラフを描くやつでしょ?なんとなくわかる。でも試験で何を聞かれるの?」

データ分析試験の対策をしていて、こんなふうに感じたことありませんか?

Matplotlibとscikit-learnは、試験の中でも出題頻度が高いにもかかわらず、「なんとなく使えるけど、試験で出るポイントが絞れない」という声をよく聞きます。

この記事では、Python 3エンジニア認定データ分析試験においてMatplotlibとScikit-learnがどのように出題されるかを、実際のコード例を交えながらピンポイントで解説します。🎯

データ分析試験は合格率約81.5%と比較的高めですが、「なんとなく知っている」だけでは引っかかりやすい問題も混ざっています。しっかり出題ポイントを押さえていきましょう!

データ分析試験におけるMatplotlib・scikit-learnの位置づけ

data analysis chart python
data analysis chart python / Photo by RDNE Stock project via Pexels

まず全体像を整理しておきましょう。

データ分析試験(40問・60分・合格ライン70%)の主教材は「Pythonによるあたらしいデータ分析の教科書」(翔泳社)です。この教科書の章構成に沿って出題されます。

MatplotlibとScikit-learnはそれぞれ独立した章として扱われており、合わせると試験全体の20〜30%程度の出題比率を占めるボリュームゾーンです。

ざっくり言うと、こんな役割分担です。

  • 📊 Matplotlib:データを「見える化」するグラフ描画ライブラリ
  • 🤖 scikit-learn:機械学習モデルを「訓練・評価」するライブラリ

それぞれの出題ポイントを順番に見ていきます。

Matplotlib の出題ポイント3選

①基本的なグラフ描画の「お作法」

Matplotlibの問題でいちばん多いのが、描画の基本フローに関する問題です。

「figureとaxesの関係って?」「plt.show()はどこで呼ぶ?」という部分が問われます。

import matplotlib.pyplot as plt
import numpy as np

# データを用意
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)

# Figure(描画領域)とAxes(グラフ本体)を作成
fig, ax = plt.subplots()

# グラフを描く
ax.plot(x, y, label='sin(x)')

# ラベル・タイトル・凡例の追加
ax.set_xlabel('x軸')
ax.set_ylabel('y軸')
ax.set_title('サインカーブ')
ax.legend()

plt.show()

ここで押さえておきたいポイントはこちらです。

  • plt.subplots()figとaxを同時に作成するパターンが試験頻出
  • ax.set_xlabel() / ax.set_ylabel() / ax.set_title() のメソッド名を正確に覚える
  • ax.legend() で凡例を表示、label=引数とセットで使う

受講生から「plt.xlabel()ax.set_xlabel()のどっちを使うか迷う」という声をよく聞きます。試験ではオブジェクト指向スタイル(ax.set_系)の問われ方が多いので、こちらを優先して覚えておきましょう。

②グラフの種類と使い分け

折れ線・棒グラフ・ヒストグラム・散布図の4種類は、どのメソッドで描くかをそのまま問われます。

  • ax.plot() → 折れ線グラフ
  • ax.bar() → 棒グラフ
  • ax.hist() → ヒストグラム(bins=引数に注意)
  • ax.scatter() → 散布図

特にax.hist()bins引数は「ビンの数(区間の分割数)を指定する」という意味を理解しているかが問われます。「デフォルトは10」という点も試験に出ています。

③複数グラフ(サブプロット)の配置

plt.subplots(行数, 列数)で複数グラフを並べる問題も出ます。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 100)

# 1行2列の配置でサブプロットを作成
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))

ax1.plot(x, np.sin(x))
ax1.set_title('sin(x)')

ax2.plot(x, np.cos(x))
ax2.set_title('cos(x)')

plt.tight_layout()  # グラフ同士が重ならないよう自動調整
plt.show()

ここで重要なのが tight_layout() です。「グラフのタイトルやラベルが重なるのを防ぐ関数」として試験に出ることがあります。知らないと選択肢で迷いやすいので要チェックです。

scikit-learn の出題ポイント3選


①機械学習の基本フロー(fit→predict→evaluate)

scikit-learnの最重要ポイントは、モデルの使い方の「型」です。どのアルゴリズムを使っても、基本的な流れは統一されています。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# データの読み込み
iris = load_iris()
X, y = iris.data, iris.target

# 訓練データとテストデータに分割
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# モデルのインスタンス化 → 訓練 → 予測
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)       # 訓練
y_pred = model.predict(X_test)    # 予測

# 評価
print(accuracy_score(y_test, y_pred))

このフローが頭に入っているかを問う問題は非常に多いです。ポイントはここです。

  • fit()訓練データで行う(テストデータでfitするのはNG)
  • predict() はテストデータに対して行う
  • train_test_split()test_sizerandom_state 引数は頻出

②前処理:StandardScalerによる標準化

「なぜ標準化が必要なの?」という概念的な問いと、どのクラス・メソッドを使うかという実装の問いが両方出ます。

  • StandardScaler:平均0・標準偏差1に変換(標準化)
  • fit_transform():訓練データに使う(fitとtransformを同時実行)
  • transform():テストデータに使う(fitはしない!)

受講生がよく間違えるのが「テストデータにfit_transform()を使ってしまう」パターンです。テストデータは訓練データのスケールで変換する必要があるので、transform()だけを呼ぶのが正解です。この違いをしっかり理解しておくと、ひっかけ問題に対応できます。

③評価指標:accuracy・precision・recall・F1

分類モデルの評価指標は、それぞれの意味と計算方法がセットで問われます。

  • accuracy(正解率):全体のうち正しく予測できた割合
  • precision(適合率):「陽性と予測した」中で本当に陽性だった割合
  • recall(再現率):「本当に陽性」の中で正しく陽性と予測できた割合
  • F1スコア:precisionとrecallの調和平均

「不均衡データのときはaccuracyだけ見ていると危険」という文脈でprecision・recallが出題されることも多いです。また、classification_report()でこれらをまとめて確認できることも覚えておきましょう。

試験直前の最終確認チェックリスト

ここまでのポイントをまとめます。試験前に確認するリストとして使ってください。✅

Matplotlib チェックリスト

  • fig, ax = plt.subplots() の意味がわかる
  • □ 4種類のグラフとメソッド名が一致している
  • ax.hist()bins引数の意味がわかる
  • tight_layout()が何をするか言える

scikit-learn チェックリスト

  • □ fit→predict→evaluateの流れを自分で書ける
  • train_test_split()の引数(test_size/random_state)がわかる
  • □ StandardScalerのfit_transformとtransformの使い分けが言える
  • □ accuracy・precision・recall・F1の違いを説明できる

この試験は主教材の内容をしっかり読み込むことが合格への近道です。「読んだつもり」で試験に臨むと、似た選択肢で迷うシーンが必ず出てきます。コードを手元で動かしながら確認するのが効果的ですよ。

もし「体系的に整理された問題演習で効率よく対策したい」という方は、筆者が運営するデータ分析試験 対策コースもご活用ください。出題頻度の高い項目を厳選した演習形式で、試験本番のイメージをつかんでいただけます。

まとめ

今回は、データ分析試験におけるMatplotlibとscikit-learnの出題ポイントを解説しました。

  • Matplotlibは描画メソッドの名前・引数・オブジェクト指向スタイルが中心
  • scikit-learnはfit→predict→evaluateの基本フロー・前処理・評価指標の意味が中心

「なんとなく知っている」から「問われたら確実に答えられる」レベルに引き上げるには、コードを実際に手で書いて動かすのがいちばんの近道です。ぜひ今日から試してみてください!💪

最新の試験詳細・申し込み方法については、協会公式サイト(pythonic-exam.com)をご確認ください。

よくある質問

Q1. MatplotlibはPandasやNumPyと一緒に出題されますか?

はい、実際の問題ではNumPy配列をMatplotlibで可視化するという組み合わせで出題されることがあります。np.linspace()np.array()で作ったデータをそのままプロットするコードを読めるようにしておきましょう。

Q2. scikit-learnのアルゴリズムは全種類覚えなければいけませんか?

すべてを深く覚える必要はありません。主教材で扱われる線形回帰・ロジスティック回帰・決定木・k-NN・k-meansを中心に、「どんなタスクに使うか(分類か回帰かクラスタリングか)」と「基本的な使い方」を押さえておけば十分です。

Q3. データ分析試験の合格ライン70%は何問正解すれば達成できますか?

試験は40問構成なので、28問以上の正解で合格ラインに到達します。12問までは落とせる計算ですが、MatplotlibとScikit-learnだけで10問前後出る可能性があるので、この2分野を固めるのは合格戦略として非常に有効です。

\ 受験前に、今の実力を無料でチェック /

本記事の筆者が運営する試験対策の専門サービスでは、本番と同じ形式の模擬試験(基礎・実践・データ分析 各1回分)を無料で受験できます。クレジットカードの登録は不要です。

▶ 試験の全体像・勉強法のまとめは完全ガイド

→ 無料で模擬試験を受け取る

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

もしも

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

電子工作とプログラミングを同時に学べる

Amazonで見る

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

もしも

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

AIコーディングの現場活用法を学ぶ一冊

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。