Python Matplotlibで3Dパラメトリック曲線の色分けプロットを行う方法
Matplotlibを使って3Dパラメトリック曲線を描き、データ値に応じて点に色をつける方法を解説します。カラーマップ(cmap)を指定することで、曲線上の位置や数値に合わせてグラデーション表示が可能になります。
実装の手順
- 図のサイズを設定し、サブプロット間の余白(パディング)を調整します。
- figure() メソッドで新しい図を作成、または既存の図をアクティブ化します。
- add_subplot() で projection='3d' を指定し、3D軸を追加します。
- パラメトリック曲線用に theta、z、r、x、y の各変数を初期化します。
- scatter() メソッドで x、y、z のデータ点をプロットし、引数 c と cmap で色分けを指定します。
- set_title() でグラフにタイトルを設定します。
- show() メソッドで図を表示します。
サンプルコード
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z ** 2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
ax.scatter(x, y, z, c=x, cmap="copper")
ax.set_title("Parametric Curve")
plt.show()コードの解説
このコードでは、theta を −4π から 4π の範囲で100分割し、z 座標も −2 から 2 まで変化させています。半径 r は z² + 1 として計算され、それをもとに螺旋状(らせん状)の3Dパラメトリック曲線が生成されます。
ポイントは scatter() の引数です。c=x とすることで x 座標の値に基づいて各点が着色され、cmap="copper" により銅色系のグラデーションカラーマップが適用されます。cmap を "viridis" や "plasma" などに変更すれば、好みの配色に簡単に切り替えられます。
出力結果
実行すると、x 値に応じて色が変化する3Dのパラメトリック曲線が表示されます。マウスでドラッグすれば視点を自由に回転でき、立体構造を直感的に確認できます。
-
【Matplotlib】アノテーション(テキスト)を回転させて線に一致させる方法
Matplotlibでグラフ上のアノテーション(テキスト)を回転させ、直線の傾きに一致させる方法を解説します。ポイントは、直線の傾きから回転角度(theta)を計算し、text()メソッドのrotation引数に渡すことです。 実装の手順 figure()メソッドを使用して、新しい図を作成するか、既存の図をアクティブにします。 add_subplot()メソッドを使用して、サブプロットとしてAxesを図に追加します。 直線の傾きmと切片cの変数を初期化します。 NumPyを使用して、xおよびyのデータ点を作成します。 テキストの回転角を求めるためにthetaを計算します。 plot()メソ
-
Python Matplotlibで3Dグラフをプロットする方法を解説
PythonのMatplotlibを使えば、3次元の散布図やグラフを簡単に描画できます。この記事では、mpl_toolkits.mplot3dモジュールを利用して3Dグラフを作成する手順を、サンプルコード付きでわかりやすく解説します。 3Dグラフをプロットする基本手順 Pythonで3Dグラフを描くには、以下のステップに従います。 figure()メソッドを使って、新しい図(フィギュア)を作成するか、既存の図をアクティブにします。 Axes3Dオブジェクトを取得して、3D用の座標軸を準備します。 x、y、zそれぞれのデータポイントをリストとして定義します。 scatter3D()メソッドを使