Да, проверьте, ниже ли значения y линейной функции ваших значений x.
В вашем случае это, кажется, угол деления первого квадранта, поэтому смещение составляет 0
, а наклон составляет 1
:
y < x
В общем проверьте для
y < m * x + t # with slope m and offset t
т.е. в вашем случае просто
y.mask = y < x
plt.plot(x, y)
Пример:
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('ggplot')
fig = plt.figure()
np.random.seed(7) # prepare data
x = np.random.random(10)
y = np.random.random(10)
y = np.ma.masked_array(y)
# plot all values
plt.plot(x, y, 'o', ms=10, mec='k', mfc=(0,0,0,0), label = 'all points')
y.mask = y < x # mask values below angular bisector
plt.plot(x, y, 'bo', label = '$y \geq x$') # plot masked array
plt.plot((0, 1), (0, 1), 'b') # plot angular bisector
m = 3 # prepare the general case
t = -1
y.mask = y < m * x + t # mask values below linear function
plt.plot(x, y, 'rx', label = '$y \geq 3x - 1$') # plot masked array
plt.plot((0, 1), (m*0+t, m*1+t), 'r') # plot linear function
plt.ylim(0, 1)
fig.legend(ncol=3, loc='upper center')
