PythonのMatplotlibで3次元ラインプロットを作成する方法【サンプルコード付き解説】
Matplotlibとは
Matplotlibは、Pythonで最も広く利用されているデータ可視化ライブラリの一つです。データを可視化することは、大量の数値を直接読んだり複雑な計算を行ったりしなくても、データの中で何が起きているのかを直感的に把握できるようにするための重要なステップです。
また、定量的な洞察を効果的に伝える手段としても非常に役立ちます。Matplotlibは主に2次元プロットの作成に使用されますが、オブジェクト指向APIを備えているため、作成したグラフをPythonアプリケーションへ簡単に組み込むことが可能です。さらに、IPythonシェル、Jupyter Notebook、Spyderなどの開発環境ともスムーズに連携できます。
Matplotlib自体はPythonで書かれており、数値計算ライブラリであるNumPyを基盤として構築されています。
Matplotlibのインストール方法
Windows環境では、以下のコマンドを実行するだけでMatplotlibをインストールできます。
pip install matplotlib
Matplotlibの主な依存ライブラリは以下の通りです。
Python(バージョン3.4以上) NumPy Setuptools Pyparsing Libpng Pytz FreeType Six Cycler Dateutil
3次元プロットが役立つ場面
3次元プロットは、データポイントのx軸・y軸・z軸という3つの軸を同時に視覚化したい場合に使用されます。例えば、機械学習でよく使われる勾配降下法(gradient descent)がどのように動作するのかを理解したり、アルゴリズムの係数の最適値を探索したりする際にも活躍します。
3次元ラインプロットのサンプルコード
それでは、Matplotlibを使って3次元ラインプロットを作成する具体的な方法を見ていきましょう。
from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes(projection='3d')
z = np.linspace(0, 1, 100)
x = z * np.sin(20 * z)
y = z * np.cos(20 * z)
ax.plot3D(x, y, z, 'red')
ax.set_ylabel("Y-axis")
ax.set_xlabel("X-axis")
ax.set_zlabel("Z-axis")
ax.set_title('A sample 3D line plot')
plt.show()
出力結果

コードの解説
- 必要なパッケージをインポートし、扱いやすくするためにエイリアス(別名)を定義します。
- 「figure」関数を使って、空の図(フィギュア)を作成します。
- 「axes」関数に
projection='3d'を指定することで、3次元プロット用の描画領域を作成します。 - NumPyライブラリの
linspaceや三角関数を使って、プロット用のデータ値を生成します。 - 「plot3D」関数を使用して、生成したデータを赤色の3次元ラインプロットとして描画します。
- set_xlabel、set_ylabel、set_zlabel の各関数でX軸・Y軸・Z軸それぞれにラベルを設定し、set_title関数でグラフにタイトルを付けます。
- 最後に「show」関数を呼び出して、完成したグラフを画面に表示します。
まとめ
このように、mpl_toolkitsのmplot3dモジュールを組み合わせることで、Matplotlibでも簡単に3次元ラインプロットを作成できます。サンプルでは np.linspace で生成したデータにsin・cos関数を適用しているため、らせん状の美しい曲線が描画されます。勾配降下法の挙動の確認など、機械学習やデータ分析の場面でも応用範囲が広いので、ぜひ実際にコードを動かして試してみてください。
-
Matplotlibを使ってPythonで正弦波(サイン波)のグラフを描く方法
Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリの一つです。データを可視化することは、数値を一つひとつ確認したり複雑な計算を行ったりしなくても、データ全体の傾向や特徴を直感的に把握できるようになるため、データ分析において非常に重要なステップとなります。また、定量的な洞察を視覚的に伝えることで、聴衆への説明も格段に分かりやすくなります。 Matplotlibは主に2次元のプロット(グラフ)を作成するために使用されます。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーション内に簡単に組み込むことができます。IPythonシェル、Jupyt
-
Seabornライブラリを使ってPythonでポイントプロットを可視化する方法
Seabornは、データの可視化を支援するPythonライブラリです。このインターフェースを利用することで、データの種類やフィルタ適用時の挙動を柔軟にカスタマイズ・制御できます。棒グラフ(バープロット)を活用すると、データ分布の中心的な傾向(中央傾向)を把握できます。barplot関数は、カテゴリ変数と連続変数の間の関係を表現するために使われます。データは長方形のバーとして描画され、バーの長さがそのカテゴリにおけるデータの割合を示します。ポイントプロットとはポイントプロットは棒グラフとよく似ていますが、塗りつぶされたバーの代わりに、データ点の推定値をもう一方の軸上の特定の高さにある「点」で表現