Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Matplotlibで3Dパラメトリック曲線の色分けプロットを行う方法

Matplotlibを使って3Dパラメトリック曲線を描き、データ値に応じて点に色をつける方法を解説します。カラーマップ(cmap)を指定することで、曲線上の位置や数値に合わせてグラデーション表示が可能になります。

実装の手順

  • 図のサイズを設定し、サブプロット間の余白(パディング)を調整します。
  • figure() メソッドで新しい図を作成、または既存の図をアクティブ化します。
  • add_subplot() で projection='3d' を指定し、3D軸を追加します。
  • パラメトリック曲線用に thetazrxy の各変数を初期化します。
  • 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のパラメトリック曲線が表示されます。マウスでドラッグすれば視点を自由に回転でき、立体構造を直感的に確認できます。

  1. 【Matplotlib】アノテーション(テキスト)を回転させて線に一致させる方法

    Matplotlibでグラフ上のアノテーション(テキスト)を回転させ、直線の傾きに一致させる方法を解説します。ポイントは、直線の傾きから回転角度(theta)を計算し、text()メソッドのrotation引数に渡すことです。 実装の手順 figure()メソッドを使用して、新しい図を作成するか、既存の図をアクティブにします。 add_subplot()メソッドを使用して、サブプロットとしてAxesを図に追加します。 直線の傾きmと切片cの変数を初期化します。 NumPyを使用して、xおよびyのデータ点を作成します。 テキストの回転角を求めるためにthetaを計算します。 plot()メソ

  2. Python Matplotlibで3Dグラフをプロットする方法を解説

    PythonのMatplotlibを使えば、3次元の散布図やグラフを簡単に描画できます。この記事では、mpl_toolkits.mplot3dモジュールを利用して3Dグラフを作成する手順を、サンプルコード付きでわかりやすく解説します。 3Dグラフをプロットする基本手順 Pythonで3Dグラフを描くには、以下のステップに従います。 figure()メソッドを使って、新しい図(フィギュア)を作成するか、既存の図をアクティブにします。 Axes3Dオブジェクトを取得して、3D用の座標軸を準備します。 x、y、zそれぞれのデータポイントをリストとして定義します。 scatter3D()メソッドを使