我想使用 matplotlib 从一组复数创建一个 Argand 图。
是否有任何预建功能可以帮助我做到这一点?
谁能推荐一种方法?
原文由 Lee 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想使用 matplotlib 从一组复数创建一个 Argand 图。
是否有任何预建功能可以帮助我做到这一点?
谁能推荐一种方法?
原文由 Lee 发布,翻译遵循 CC BY-SA 4.0 许可协议
跟进@inclement 的回答;以下函数生成一个 argand 图,该图以 0,0 为中心并缩放到复数集中的最大绝对值。
我使用了 plot 函数并从 (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)
产生:
编辑:
我刚刚意识到还有一个 polar
绘图功能:
for x in a:
plt.polar([0,angle(x)],[0,abs(x)],marker='o')
原文由 Lee 发布,翻译遵循 CC BY-SA 3.0 许可协议
1 回答9.2k 阅读✓ 已解决
2 回答5k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
3 回答4.2k 阅读
2 回答2.2k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
我不确定你到底想在这里做什么……你有一组复数,并想通过将它们的实部用作 x 坐标并将虚部用作 y 来将它们映射到平面?
如果是这样,您可以使用 --- 获得任何 python 虚数的实部,使用
number.imag
number.real
获得虚数部分。如果您使用的是 numpy,它还提供了一组辅助函数 numpy.real 和 numpy.imag 等,它们适用于 numpy 数组。因此,例如,如果你有一个复数数组存储这样的东西:
…你可以做
这会在 argand 图上为每个点绘制点。
编辑:对于绘图部分,您当然必须通过
from matplotlib.pyplot import *
或者(像我一样)在 pylab 模式下使用 ipython shell。