#python #matplotlib #data-visualization
Вопрос:
Я пытаюсь построить несколько различных линий, используя уравнения:
def upper_line(a, b, c, d, x_bhighlim, x_thighlim):
x = np.linspace(x_bhighlim, x_thighlim, 100)
y = (a) (b*x) (c*(x**2)) (d*(x**3))
return x, y
def lower_line(a, b, c, d, x_blowlim, x_tlowlim):
x = np.linspace(x_blowlim, x_tlowlim, 100)
y = (a) (b*x) (c*(x**2)) (d*(x**3))
return x, y
проблема в том, что эти линии имеют диапазоны x и y, по которым они жизнеспособны. Диапазоны x, в которых они жизнеспособны, применяются при определении x. Как я могу реализовать диапазоны y, сохраняя при этом len(x) == len(y) и размеры x равными размерам y. Моя мысль состоит в том, чтобы сделать что-то вроде:
def lower_line(a, b, c, d, x_blowlim, x_tlowlim, y_blowlim, y_tlowlim):
x = np.linspace(x_blowlim, x_tlowlim, 100)
yfull = (a) (b*x) (c*(x**2)) (d*(x**3))
y = np.where((y_blowlim < yfull) amp; (yfull < y_tlowlim))
return x, y
Но это не может построить график (y имеет размеры (1, 99), x имеет размеры (100,)), и это не возвращает значения y, которые имеют для меня смысл.
Кроме того, у меня есть много разных значений a, b, c и d, поэтому я строю графики на основе функции.
Для воспроизводства я приведу примеры значений для строчной строки:
a = 0.029
b = 1.320
c = -0.712
d = 1.472
x_blowlim = -0.45
x_tlowlim = 0.29
y_blowlim = -0.90
y_tlowlim = 0.38