Matplotlib为什么无法绘制高精度的反比例函数?

我用Python的matplotlib库绘制了反比例函数,当x步长很小时,得出的图像是错误的,请问这是为什么?

代码:

步长为0.001(错误图像)

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-10, 10, 0.001)
y = 1/x
plt.plot(x, y)
plt.show()

步长为0.5(正确图像):

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-10, 10, 0.5)
y = 1/x
plt.plot(x, y)
plt.show()

 

我大概猜到了,因为精度很小的时候,在靠近0的地方类似于无穷小,然后1/无穷小就得到了无穷大。 然后接着y轴为了显示出无穷大的数据,就被无限地拉伸,然后图像看起来就是错误的了。 y轴的刻度值验证了我的这一猜想。 应该可以用设置xy等比例或者设置值域的方法来解决。