python - 使用 pyplot 返回复数值的绘图函数

标签 python numpy matplotlib scipy

我在 Facebook 上找到了这张图片并想绘制它,因为我认为这将是一个学习新东西的好机会。

 love formula
(来源:akamaihd.net)

代码:

import numpy as np
import scipy.special
import pylab

x = np.linspace( -1.0, 1.0, 200 )
y = np.sqrt(  1-np.square(np.complex64(x) ) ) + np.complex64( scipy.special.cbrt( np.square( x ) ) )
pylab.plot( np.complex64( x ), y )
pylab.show()

输出:

IMG

我无法获得图中给出的情节。为了绘图,我将公式重新排序为 y = f(x) 形式并将其翻译成上面的代码。

最佳答案

import matplotlib.pyplot as plt
import numpy as np

y, x = np.ogrid[-1:2:100j, -1:1:100j]
plt.contour(x.ravel(), y.ravel(), x**2 + (y-((x**2)**(1.0/3)))**2, [1])
plt.axis('equal')
plt.show()

enter image description here


您可以调整纵横比使曲线更像心形:

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
y, x = np.ogrid[-1.5:2:1000j, -2:2:1000j]
plt.contour(x.ravel(), y.ravel(), x**2 + (y-((x**2)**(1.0/3)))**2, [1])
ax.set_aspect(0.75) 
plt.show()

enter image description here

关于python - 使用 pyplot 返回复数值的绘图函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14901376/

相关文章:

python - 用于选择二维数组元素的矢量化代码

python - 使用 scipy.optimize 求多变量方程的根

python - 为什么 matplotlib 轴应该包含的 Line2D 对象显示为空?

python - pytest:获取 AttributeError: 'CaptureFixture' 对象没有属性 'readouterror' 捕获标准输出

python - argparse - 禁止出现相同的参数

python - 加快深度的 numpy 整数数组索引

python - 将 pandas DataFrame.plot 填充到 matplotlib 子图中

python - 拟合高斯函数

python - 如何使 IPython 笔记本 matplotlib 绘图内联

python - 如何从 Flask 中的单独模块登录