matplotlibを使って複素数の集合からArgand Diagramを作成したいと思います。matplotlibを使って複素数(Argand Diagram)をプロットする方法
これを行うのに役立つ既成の関数はありますか?
アプローチをお勧めする人はいますか?
matplotlibを使って複素数の集合からArgand Diagramを作成したいと思います。matplotlibを使って複素数(Argand Diagram)をプロットする方法
これを行うのに役立つ既成の関数はありますか?
アプローチをお勧めする人はいますか?
ここであなたが何をしているのかわかりません...複素数のセットがあり、実数部をx座標に、虚数部をyとしてプレーンにマップしたい?
もしそうなら、number.real
と虚数部のいずれかの実数部分をnumber.imag
で得ることができます。 numpyを使用している場合は、numpy配列で機能するnumpy.realとnumpy.imagなどのヘルパ関数のセットも提供します。あなただけ
In [15]: fig,ax = subplots()
In [16]: ax.scatter(a.real,a.imag)
これは、それぞれのアルガン図にドットをプロットを行うことができます...
In [13]: a = n.arange(5) + 1j*n.arange(6,11)
In [14]: a
Out[14]: array([ 0. +6.j, 1. +7.j, 2. +8.j, 3. +9.j, 4.+10.j])
:
だから例えば、あなたがこのような何かを保存複素数の配列を持っていた場合ポイント。
編集:プロットする部分については、もちろんfrom matplotlib.pyplot import *
でmatplotlib.pyplotをインポートしたか、またはipylthonシェルをpylabモードで使用している必要があります。
@ inclementの回答にフォローアップしてください。次の関数は、0,0を中心とし、複素数の集合の最大絶対値にスケーリングされたargandプロットを生成します。
私はプロット関数を使用し、(0,0)からの実線を使用しました。これらは、ro-
をro
に置き換えることで削除できます。例えば
def argand(a):
import matplotlib.pyplot as plt
import numpy as np
for x in range(len(a)):
plt.plot([0,a[x].real],[0,a[x].imag],'ro-',label='python')
limit=np.max(np.ceil(np.absolute(a))) # set limits for axis
plt.xlim((-limit,limit))
plt.ylim((-limit,limit))
plt.ylabel('Imaginary')
plt.xlabel('Real')
plt.show()
:
>>> a = n.arange(5) + 1j*n.arange(6,11)
>>> from argand import argand
>>> argand(a)
は生成します。
EDIT:
:を私はちょうどpolar
プロット機能もあり実現しています10
for x in a:
plt.polar([0,angle(x)],[0,abs(x)],marker='o')
'インポート*'を避けるようにしてください:あなたは、現在の名前空間にインポートしてplt'として輸入matplotlib.pyplot 'のような何かをしていない場合、それははるかに読みやすく、より少ない混乱の' plt。これにより、名前の衝突が回避されます –