import numpy as np
import matplotlib.pyplot as plt
def z(n):
t = np.linspace(-np.pi, np.pi, 1000)
c = 0.25 * n
for n in range(1,n+1):
c = c - (-1) ** n * np.exp(1j * n * t) / (2 * n)
return c.view('(2,)float').T
plt.plot( *z(2), *z(3), *z(4), *z(5), *z(6), '-', lw=3 )
plt.axis('scaled')
plt.show()
我自己也研究过这个问题,因为将函数输出的向量(数组)分成plot函数的实部和虚部会有点不方便。例如,
f(x).real, f(x).imag
将调用函数两次。我得到的最接近的方法是用numpy“view”方法将复向量转换成有序实向量,从函数中返回,然后在plot函数中用“*”将其解包。这个在复杂平面上绘制超心形图案的示例说明了该技术:似乎没有本地的复数绘图功能。建立你自己的。在
只是稍微相关,但是您可以使用cplot(我的一个项目)来绘制使用domain coloring的复杂值函数,例如
相关问题 更多 >
编程相关推荐