复值函数的matplotlib图

2024-09-29 21:54:49 发布

您现在位置:Python中文网/ 问答频道 /正文

在matlab中,一个复向量的绘图将产生虚部与实部的绘图。在

matplotlib中是否有等效函数?在

显然,这将起作用:

def plotcomplex(c, *args):
    plot(real(c), imag(c), args)

但它已经存在了吗?在


Tags: 函数绘图plotmatplotlibdefargs向量real
3条回答

我自己也研究过这个问题,因为将函数输出的向量(数组)分成plot函数的实部和虚部会有点不方便。例如,f(x).real, f(x).imag将调用函数两次。我得到的最接近的方法是用numpy“view”方法将复向量转换成有序实向量,从函数中返回,然后在plot函数中用“*”将其解包。这个在复杂平面上绘制超心形图案的示例说明了该技术:

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()

Hypercardioid Patterns

似乎没有本地的复数绘图功能。建立你自己的。在

只是稍微相关,但是您可以使用cplot(我的一个项目)来绘制使用domain coloring的复杂值函数,例如

import cplot
import numpy

cplot.show(numpy.sin, -5, +5, -5, +5, 100, 100)

enter image description here

相关问题 更多 >

    热门问题