在python matplotlib中绘制图形时,如何排除某些值?

uqdfh47h  于 2023-03-23  发布在  Python
关注(0)|答案(2)|浏览(292)

我刚开始学习python matplotlib。我想在python matplotlib. pyplot中绘制y = 1/x行空间。但是正如你所看到的图片,渐近线出现在图形中。我想删除渐近线。如何做到这一点?谢谢你阅读我的问题。
https://i.stack.imgur.com/P9LPO.png
这是我代码

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-5,5,1000)
y = 1 /x
fig, ax = plt.subplots()
ax.plot(x,y,linewidth=2.0)
ax.set(xticks=np.arange(-6,6), ylim=(-20,20))
plt.show()

试着排除x =0。但感觉很难,我想还有另一种方法。
请解释或显示代码。

ttp71kqs

ttp71kqs1#

只需绘制两个单独的图,一个是x从-5到-0.01的图,另一个是x从0.01到5的图。如果希望它们显示相同的颜色,请确保明确指定颜色。

import matplotlib.pyplot as plt
import numpy as np

x1 = np.linspace(-5, -0.01,500)
x2 = np.linspace(0.01, 5,500)
y1 = 1 / x1
y2 = 1 / x2

fig, ax = plt.subplots()
ax.plot(x1,y1, c='blue', linewidth=2.0)
ax.plot(x2,y2, c='blue', linewidth=2.0)
ax.set(xticks=np.arange(-6,6), ylim=(-20,20))
plt.show()
wj8zmpe1

wj8zmpe12#

从技术上讲,没有其他的方法,因为y=1/x图由两个独立的分支组成,而在示例代码中,我们试图将它们画在一条线上,所以所谓的渐近线实际上是连接图上的点(-0.01,-100)和(0.01,100)的线。
所以,是的,你应该手动排除零:

import matplotlib.pyplot as plt
import numpy as np

x1 = np.linspace(-5,-0.01,1000)
x2 = np.linspace(0.01,5,1000)
fig, ax = plt.subplots()
ax.plot(x1,1/x1,linewidth=2.0)
ax.plot(x2,1/x2,linewidth=2.0)
ax.set(xticks=np.arange(-6,6), ylim=(-20,20))
plt.show()

相关问题