Matplotlibのpyplot.plot()を使ってパラメトリック曲線を描画する方法
Pythonの可視化ライブラリMatplotlibでは、pyplot.plot()メソッドを利用することで、パラメータ方程式で定義された曲線(パラメトリック曲線)を簡単に描画できます。この記事では、極座標形式のパラメトリック曲線を2次元平面上にプロットする手順を、サンプルコードとともに解説します。
パラメトリック曲線を描画する手順
- 図のサイズと余白の設定:
plt.rcParamsを使用して、図のサイズやサブプロット間・周囲のパディングを調整します。 - サンプル数Nの初期化: 曲線を構成するデータ点の数を表す変数Nを定義します。値が大きいほど滑らかな曲線になります。
- NumPyによるデータ点の生成: パラメータt、半径r、および座標x・yのデータ点をnumpyで作成します。
- 図とサブプロットの作成:
plt.subplots()でFigureオブジェクトとAxesオブジェクトを生成します。 - plot()メソッドでプロット: xとyのデータ点をplot()メソッドに渡して曲線を描画します。
- 図の表示: 最後にshow()メソッドを呼び出して、グラフを画面に表示します。
サンプルコード
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True N = 400 t = np.linspace(0, 2 * np.pi, N) r = 0.5 + np.cos(t) x, y = r * np.cos(t), r * np.sin(t) fig, ax = plt.subplots() ax.plot(x, y) plt.show()
コードの解説
このコードでは、パラメータtを0から2πまで400等分した値として生成し、半径r = 0.5 + cos(t)を計算しています。その後、x = r·cos(t)、y = r·sin(t)という関係式からデカルト座標へ変換することで、カージオイド(ハート型に似た曲線)が描かれます。np.linspace()により得られた離散的なデータ点を順番に結ぶことで、滑らかな連続曲線として表示されます。
実行結果
上記のコードを実行すると、以下のようなパラメトリック曲線が表示されます。

まとめ
パラメトリック曲線の描画は、パラメータtの範囲を定義し、x・y座標をそれぞれ計算してplot()に渡すだけというシンプルな流れです。rの式を変更すれば、リサージュ曲線や螺旋など、さまざまな形状の曲線を自由に試すことができます。ぜひ各式を変えて、独自の曲線描画に挑戦してみてください。
-
Matplotlibで陰方程式をプロットすることは可能?等高線を使った描画方法
Matplotlibには、陰方程式(implicit equation)を直接プロットする専用の機能は標準では用意されていません。しかし、等高線プロット(contour)を活用することで、陰方程式のグラフを簡単に描くことができます。この記事では、その具体的な手順とサンプルコードを紹介します。 陰方程式をプロットする手順 NumPyを使ってxrangeとyrangeのデータ点を作成します。 meshgrid()メソッドを使って、座標ベクトルから座標行列を生成します。 xとyから方程式を作成します。 contour()メソッドにx、y、方程式を渡して等高線を作成します。 show()メソッドで図
-
Python Matplotlibで3Dグラフをプロットする方法を解説
PythonのMatplotlibを使えば、3次元の散布図やグラフを簡単に描画できます。この記事では、mpl_toolkits.mplot3dモジュールを利用して3Dグラフを作成する手順を、サンプルコード付きでわかりやすく解説します。 3Dグラフをプロットする基本手順 Pythonで3Dグラフを描くには、以下のステップに従います。 figure()メソッドを使って、新しい図(フィギュア)を作成するか、既存の図をアクティブにします。 Axes3Dオブジェクトを取得して、3D用の座標軸を準備します。 x、y、zそれぞれのデータポイントをリストとして定義します。 scatter3D()メソッドを使