【发布时间】:2015-10-19 14:06:06
【问题描述】:
我想绘制函数图形:w(s) = 1/(1+s)。
s 是虚数单位 (1j) 和名为 omega 的变量的乘积;即s = 1j*omega。
如何使用 Python(2.7 或 3.4)和 matplotlib 在复数轴(实数和虚数)上绘制它?
【问题讨论】:
标签: python python-2.7 python-3.x matplotlib complex-numbers
我想绘制函数图形:w(s) = 1/(1+s)。
s 是虚数单位 (1j) 和名为 omega 的变量的乘积;即s = 1j*omega。
如何使用 Python(2.7 或 3.4)和 matplotlib 在复数轴(实数和虚数)上绘制它?
【问题讨论】:
标签: python python-2.7 python-3.x matplotlib complex-numbers
您的问题不清楚您要绘制什么,但假设 omega = x + iy 是您希望绘制 w(s) 作为函数的数字,您必须决定如何呈现复杂数字 w(s)。您可以选择用笛卡尔坐标轴表示实数 (x) 和虚数 (y) 轴的图,并将 w(s) 的绝对值绘制为颜色,或者您可以选择分别绘制实部和虚部。 例如,
import matplotlib as plt
import numpy as np
x = np.linspace(-0.5,0.5,100)
y = np.linspace(-3,0,100)
X, Y = np.meshgrid(x,y)
def f(x, y):
return 1./(1+1j*(x+1j*y))
import pylab
pylab.imshow(np.abs(f(X,Y)))
pylab.show()
【讨论】:
omega 是一个复数,它有一个实部和一个虚部,可以在二维平面上表示。所以你需要在第三维中绘制w(s) 的值(例如,根据绝对值对平面的点进行着色)。如果omega 是真实的,那么只需在常规线图上绘制|w(s)| 和omega。