python 没有正确绘制 "tangent" 函数

python isn't plotting the "tangent" function correctly

我正在尝试将一般正切函数绘制到 Python 中的 matplotlib 上,但结果不正确。

我要绘制的函数是: $$ f(x) = A tan( \frac{2\pi}{\lambda} x - \phi ) $$


import numpy as np
import math
import matplotlib.pyplot as plt
import tkinter

f = lambda x, A, lambda_, phi: A * math.sin( ((2 * math.pi) / lambda_) * x - phi)
g = lambda x, A, lambda_, phi: A * math.cos( ((2 * math.pi) / lambda_) * x - phi)
h = lambda x, A, lambda_, phi: f(x, A, lambda_, phi) / g(x, A, lambda_, phi)

def generate_graph(A, lambda_, Phi):
    plt.figure()
    x = np.arange(-.95, .95, 0.005)
    #plt.plot(x, [f(k, A, lambda_, Phi) for k in x], color='red')
    #plt.plot(x, [g(k, A, lambda_, Phi) for k in x], color='blue')
    plt.plt(x, [h(k, A, lambda_, Phi) for k in x], color='green')
    plt.show()

A = 1 #amplitude
lambda_ = 3 #wavelength
Phi = 0 #phase shift

generate_graph(A, lambda_, Phi)

它应该看起来像这样:

但它最终看起来像这样:

这是由于正切函数的奇异性(即在这些点周围具有 x 值)造成的。一个快速的解决方法是限制 y-axis,例如

plt.ylim(-40, 40)

给予