matplotlib可复制图

2024-05-17 03:43:25 发布

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

我试图用python绘制一个带有变量参数的复杂函数,但发现了一个无法解释的差异。我的代码如下所示:

import matplotlib.pyplot as plt
from numpy import pi, exp, real, imag, linspace


a = 1
b = 6
c = -14
coeff1 = 1
coeff2 = -1 / 2
coeff3 = 1j / 3


def f(t):
    return (
        coeff1 * exp(a * 1j * t) + coeff2 * exp(b * 1j * t) + coeff3 * exp(c * 1j * t)
    )


t = linspace(0, 2 * pi, 1000)

ft = f(t)
plt.plot(real(ft), imag(ft))
plt.plot(
    real(exp(1j * t) - exp(6j * t) / 2 + 1j * exp(-14j * t) / 3),
    imag(exp(1j * t) - exp(6j * t) / 2 + 1j * exp(-14j * t) / 3),
)

# These two lines make the aspect ratio square
fig = plt.gcf()
fig.gca().set_aspect("equal")

plt.show()

enter image description here

我希望图中以红色和绿色显示的两个函数是相同的。但情况显然并非如此。有人能告诉我我错过了什么吗?谢谢


Tags: 函数importplotpifigpltrealft
1条回答
网友
1楼 · 发布于 2024-05-17 03:43:25

尝试用浮点数替换所有整数。也许这是python2类型的问题

在python3上,我复制了你的代码,它们是相等的。我的依赖项版本是:

numpy==1.14.0
matplotlib==2.2.2

更新。问题是-1/2,在python2上等于-1

相关问题 更多 >