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

Pythonで複素数をプロットする方法を実例コード付きで解説

Pythonで複素数を可視化する基本の考え方

Pythonでは、matplotlibnumpyを組み合わせることで、複素数を簡単にグラフ化できます。複素数は「実部(real)」と「虚部(imag)」という2つの成分を持つため、実部をx軸、虚部をy軸に対応させれば、複素平面上の点として視覚的に表現できます。

複素数の配列を散布図として描くサンプルコード

以下は、複素数の配列を受け取り、複素平面上に赤い点としてプロットする基本的な例です。

import matplotlib.pyplot as plt
import numpy as np

cnums = np.arange(5) + 1j * np.arange(6, 11)
X = [x.real for x in cnums]
Y = [x.imag for x in cnums]
plt.scatter(X, Y, color='red')
plt.show()

コードのポイント解説

  • np.arange(5) + 1j * np.arange(6, 11) により、「0+6j」「1+7j」「2+8j」「3+9j」「4+10j」という5つの複素数が生成されます。
  • x.real で実部、x.imag で虚部をそれぞれ取り出し、リスト X・Y に格納しています。
  • plt.scatter() は点を散布図として描画する関数で、ここでは色を赤(red)に指定しています。
  • plt.show() を呼び出すことで、複素平面上にプロットされたグラフが表示されます。

このように、実部と虚部を座標として扱うだけで、複素数の分布を直感的に把握できます。データ分析や信号処理などで複素数を扱う際に非常に便利な手法です。

極座標(ポーラープロット)で表示したい場合

複素数は「絶対値(大きさ)」と「偏角(位相)」の組み合わせでも表現できます。極形式での可視化を行いたい場合は、numpyの np.abs()np.angle() を使い、極座標プロットを利用するとよいでしょう。

import matplotlib.pyplot as plt
import numpy as np

cnums = np.arange(5) + 1j * np.arange(6, 11)
r = [np.abs(x) for x in cnums]      # 絶対値(半径)
theta = [np.angle(x) for x in cnums]  # 偏角(角度)

ax = plt.subplot(projection='polar')
ax.scatter(theta, r, color='blue')
plt.show()

用途に応じて、直交座標(複素平面)と極座標を使い分けることで、複素数データの性質をより深く理解しやすくなります。

  1. Pythonで時系列データをプロットする方法をわかりやすく解説

    Pythonのmatplotlibを使えば、時系列データ(日時を軸にしたデータ)を簡単にグラフ化できます。ここでは、datetimeオブジェクトを含むデータを折れ線グラフとして描画する基本的な手順を紹介します。 時系列プロットの基本手順 numpyを使用して、x軸(日時データ)とy軸(数値データ)を作成します。 plot()メソッドを使って、作成したx・yのデータをプロットします。 show()メソッドを実行して、図を画面に表示します。 コード例 以下のサンプルコードでは、2021年1月1日の0時から23時までの24個の日時データを生成し、それに対応するランダムな数値をy軸としてプロットし

  2. PythonでROC曲線をプロットする方法をわかりやすく解説

    ROC曲線とは?ROC(Receiver Operating Characteristic:受信者動作特性)曲線は、分類モデルの性能を視覚的に評価するためのグラフです。横軸に偽陽性率(FPR)、縦軸に真陽性率(TPR)を取り、モデルの識別能力を直感的に確認できます。scikit-learnでは metrics.plot_roc_curve(clf, X_test, y_test) メソッドを使うことで、学習済みモデルから簡単にROC曲線を描画できます。ROC曲線をプロットする手順分類用データセットの生成make_classification() メソッドを使用して、ランダムなnクラス分類問題の