小编Tim*_* GO的帖子

如何将y = 1/x绘制为单个图形

是否有一种简单的方法可以将积极和消极趋于无穷大的函数绘制成单个图,而不将图形连接到正负两端?

例如,使用此代码绘制y = 1/x得出结果图:

import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return 1/x
fx_name = r'$f(x)=\frac{1}{x}$'

x=np.setdiff1d(np.linspace(-10,10,100),[0]) #to remove the zero
y=f(x)
plt.plot(x, y, label=fx_name)
plt.legend(loc='upper left')
plt.show()
Run Code Online (Sandbox Code Playgroud)

Y = 1/X

但我想要这个输出,我通过绘制两个独立的域来实现:

import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return 1/x
fx_name = r'$f(x)=\frac{1}{x}$'

xfn=np.setdiff1d(np.linspace(-10,0,100),[0])
xfp=np.setdiff1d(np.linspace(0,10,100),[0])
yfn=f(xfn)
yfp=f(xfp)

yf = plt.plot(xfn, yfn, label=fx_name)
plt.plot(xfp, yfp, color=yf[0].get_color())
plt.legend(loc='upper left')
plt.show()
Run Code Online (Sandbox Code Playgroud)

Y = 1/X

是否有捷径?非常感谢.

在域数组中包含零,并将除数除以零.这会强制返回的共域数组的一个元素为"inf",并且不会绘制"inf".

import numpy as np
import matplotlib.pyplot as plt

def f(x):
    with np.errstate(divide='ignore', invalid='ignore'):
        return 1/x …
Run Code Online (Sandbox Code Playgroud)

python plot numpy matplotlib

11
推荐指数
2
解决办法
5031
查看次数

标签 统计

matplotlib ×1

numpy ×1

plot ×1

python ×1