Matplotlibをノートブックで使いこなすための完全ガイド – 初心者でもわかる基本から実践まで

※本サイトにはプロモーション・広告が含まれています。

(最終更新月: 2024年11月)

✔こんな方におすすめの記事です

「Jupyter NotebookでMatplotlibの使い方がわからない」
「グラフをきれいに表示する方法を知りたい」
「Matplotlibでインタラクティブなグラフを作りたい」

✔当記事を通じて得られること

  • Jupyter NotebookでのMatplotlibの基本的な使い方
  • 見やすいグラフを作成するためのテクニック
  • インタラクティブな可視化の方法と実践例

当記事では、Matplotlibの基本的な設定方法から応用的なグラフ作成まで、実例を交えて幅広く解説していきます。
ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

Matplotlibとノートブックの基本

Jupyter NotebookでMatplotlibを使うための基本的な知識について説明します。
初めてMatplotlibを使う方でも安心して始められるように、環境設定から順を追って解説していきます。

  • インポートと基本設定
  • マジックコマンドの使い方
  • プロットの表示方法

インポートと基本設定

Matplotlibをノートブックで使うためには、まず適切なインポートが必要です。

一般的に以下のようなインポート文を使用するのが標準的な方法となっています。

import matplotlib.pyplot as plt
import numpy as np

さらに、以下のコードでスタイル設定を行うことで、より見やすいグラフを作成できます。

plt.style.use('seaborn')
plt.rcParams['figure.figsize'] = (10, 6)
plt.rcParams['font.size'] = 12

マジックコマンドの使い方

Jupyter Notebookでは、マジックコマンドを使用してグラフの表示方法を制御できます。

主に使用される2つのマジックコマンドについて説明していきましょう。

%matplotlib inline  # 静的なグラフを表示
%matplotlib notebook  # インタラクティブなグラフを表示

これらのコマンドは、セルの先頭で実行する必要があります。

プロットの表示方法

基本的なプロットの表示方法について解説します。

シンプルな線グラフを表示するには、以下のようなコードを使用します。

x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x))
plt.title('Simple Sine Wave')
plt.xlabel('X axis')
plt.ylabel('Y axis')
plt.show()

グラフのカスタマイズ

Matplotlibでは、グラフの見た目を細かくカスタマイズすることができます。
より魅力的なデータ可視化を実現するために、さまざまな設定方法を学んでいきましょう。

  • 色とスタイルの設定
  • 軸の設定とグリッド
  • 凡例とタイトルのカスタマイズ

色とスタイルの設定

グラフの色やスタイルを変更することで、データをより効果的に表現できます。

線の色や太さ、スタイルは以下のように設定します。

plt.plot(x, np.sin(x), color='blue', linewidth=2, linestyle='--', label='sin')
plt.plot(x, np.cos(x), color='red', linewidth=2, linestyle='-', label='cos')
plt.legend()
plt.show()

軸の設定とグリッド

軸の範囲やグリッドの設定は、データの見やすさに大きく影響します。

以下のコードで、軸の範囲とグリッドを設定できます。

plt.plot(x, np.sin(x))
plt.xlim(0, 10)
plt.ylim(-1.5, 1.5)
plt.grid(True, linestyle=':', alpha=0.7)
plt.show()

凡例とタイトルのカスタマイズ

グラフの説明を充実させるために、凡例とタイトルを効果的に使用しましょう。

plt.plot(x, np.sin(x), label='Sine Wave')
plt.plot(x, np.cos(x), label='Cosine Wave')
plt.title('Trigonometric Functions', pad=20)
plt.legend(loc='upper right', frameon=True)
plt.show()

インタラクティブな機能の活用

Jupyter Notebookの特徴を活かした、インタラクティブなグラフ作成について説明します。
ユーザーが直接操作できるグラフは、データの理解を深めるのに役立ちます。

  • ズームと移動機能
  • 複数グラフの連携
  • イベントハンドリング

ズームと移動機能

インタラクティブモードでは、マウス操作でグラフを自由に操作できます。

%matplotlib notebook
plt.figure()
plt.plot(x, np.sin(x))
plt.title('Interactive Plot - Try zooming!')
plt.show()

複数グラフの連携

サブプロットを使用して、複数のグラフを連携させることができます。

fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 8))
ax1.plot(x, np.sin(x))
ax2.plot(x, np.cos(x))
plt.tight_layout()
plt.show()

イベントハンドリング

マウスクリックなどのイベントに対する処理を追加できます。

def onclick(event):
    print(f'Clicked at x={event.xdata}, y={event.ydata}')

fig = plt.figure()
plt.plot(x, np.sin(x))
fig.canvas.mpl_connect('button_press_event', onclick)
plt.show()

データ可視化の実践例

実際のデータを使用して、さまざまなグラフの作成方法を紹介します。
実践的な例を通じて、効果的なデータ可視化の方法を学んでいきましょう。

  • 散布図の作成
  • ヒストグラムの描画
  • 複合グラフの作成

散布図の作成

データの分布を可視化するための散布図を作成します。

np.random.seed(42)
data_x = np.random.normal(0, 1, 100)
data_y = 2 * data_x + np.random.normal(0, 0.5, 100)

plt.scatter(data_x, data_y, alpha=0.5)
plt.title('Scatter Plot Example')
plt.xlabel('X values')
plt.ylabel('Y values')
plt.show()

ヒストグラムの描画

データの頻度分布を表示するヒストグラムを作成します。

plt.hist(data_x, bins=20, alpha=0.7, color='blue')
plt.title('Histogram Example')
plt.xlabel('Values')
plt.ylabel('Frequency')
plt.show()

複合グラフの作成

異なる種類のグラフを組み合わせて、より豊富な情報を表示します。

fig, ax1 = plt.subplots()
ax2 = ax1.twinx()

ax1.plot(x, np.sin(x), 'b-', label='Sine')
ax2.plot(x, np.exp(x/5), 'r-', label='Exponential')

ax1.set_xlabel('X axis')
ax1.set_ylabel('Sine', color='b')
ax2.set_ylabel('Exponential', color='r')

plt.title('Combined Plot Example')
plt.show()

保存と出力

作成したグラフを適切に保存し、再利用できるようにする方法を説明します。
質の高い可視化結果を様々な形式で出力する方法について学びましょう。

  • 画像形式での保存
  • 解像度の設定
  • スタイルのエクスポート

画像形式での保存

グラフを様々な形式で保存する方法を紹介します。

plt.plot(x, np.sin(x))
plt.savefig('sine_wave.png', dpi=300, bbox_inches='tight')
plt.savefig('sine_wave.pdf', format='pdf', bbox_inches='tight')
plt.close()

解像度の設定

高品質な出力のための解像度設定について説明します。

plt.figure(figsize=(12, 8), dpi=300)
plt.plot(x, np.sin(x))
plt.title('High Resolution Plot')
plt.savefig('high_res_plot.png', dpi=300)
plt.close()

スタイルのエクスポート

カスタマイズしたスタイルを保存して再利用する方法を紹介します。

plt.style.use('seaborn')
plt.rcParams.update({
    'figure.figsize': (10, 6),
    'font.size': 12,
    'lines.linewidth': 2
})

まとめ

当記事では、Matplotlibとノートブックの使い方について学習してきました。

  • Jupyter NotebookでのMatplotlibの基本的な使い方を習得
  • 効果的なグラフカスタマイズの方法を理解
  • インタラクティブな可視化技術の実践方法を学習

これらの知識を活かして、より魅力的なデータ可視化を実現できることでしょう。

まずは簡単なグラフから始めて、徐々に複雑な可視化にチャレンジしていくことをおすすめします。

データ可視化の世界には、まだまだ探究すべき可能性が広がっています。

タイトルとURLをコピーしました