Python tan函数图像绘制,不带有极值的线条

我们知道tan函数的图像应该为一系列的从 [ − π 2 , π 2 ] \left[-\cfrac{\pi}{2}, \cfrac{\pi}{2}\right] [2π,2π]以及同这个周期内函数图像类似的图像一直向后循环,tan函数在自变量区间 [ − π 2 , π 2 ] \left[-\cfrac{\pi}{2}, \cfrac{\pi}{2}\right] [2π,2π]内的图像为:

import numpy as np
import matplotlib.pyplot as plt


x = np.linspace(-np.pi / 2, np.pi / 2, 101)
y = np.tan(x)

plt.figure()
plt.plot(x, y)
plt.ylim([-3, 3])
ax = plt.gca()
ax.set_aspect(1)
plt.show()

在这里插入图片描述
然而当我们只用Python作图时,我们会发现,会得到一条连接上下极致的图像,比如我们做 [ 0 , 2 π ] \left[0, 2\pi\right] [0,2π]内的图像,我们会得到如下图所示的结果。
在这里插入图片描述
如上图所示,为两个黑色框包裹起来的区域,很丑,并且不符合tan函数真实的图像,那么对于这个问题该如何处理呢?我们可以采用如下代码来避免这一问题。

import numpy as np
import matplotlib.pyplot as plt


end_vertex = 2 * np.pi
loop_start = np.pi / 2
plt.figure()
x1 = np.linspace(0, loop_start, 101)
y1 = np.tan(x1)
plt.plot(x1[:-1], y1[:-1], color="magenta")
for i in range(int(end_vertex // np.pi)):
    if end_vertex - (loop_start + np.pi) < 0:
        x2 = np.linspace(loop_start, end_vertex, 101)
    else:
        x2 = np.linspace(loop_start, loop_start + np.pi, 101)
        loop_start += np.pi
    y2 = np.tan(x2)
    plt.plot(x2[1:-1], y2[1:-1], color="magenta")

plt.ylim([-3, 3])
ax = plt.gca()
ax.set_aspect(1)
plt.show()

得到的图像如下:
在这里插入图片描述
如果大家觉得有用,就请点个赞吧~

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤奋的大熊猫

你的鼓励将是我写作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值