Я создал функцию с циклом из трех переменных S, T, L. Каждая из этих переменных имеет небольшое, среднее и большое значение (например, Ss, Sm, Sb). Затем, используя функцию (формулу), я рассчитал 27 (каждое значение друг с другом) функций, которые зависят от расстояния. Сюжет выглядит хорошо, однако я не могу нарисовать легенду с надписями к нему. Я хотел бы иметь легенду «Sm, Tm, Bm» или «Sm, Tb, Bm» для каждой функции.
#variables
S = namedtuple('S', ['b', 'm', 's'])
T = namedtuple('T', ['b', 'm', 's'])
L = namedtuple('L', ['b', 'm', 's'])
s = S(b=0.00168, m=0.00112, s=0.000560)
t = T(b=750.0, m=645.0, s=550.0)
l = L(b=0.07, m=0.05, s=0.02)
distance = np.zeros((100))
result = np.zeros((3, 3, 3, 100))
def jimmy_jao_formula(m: int, sx: float, tx: float, lx: float):
Ho = 2
w = 0.26
p = (1.0/math.sqrt(2)) * (((lx/tx)**2.0 + (w*sx/tx)**2)**(1/2) + (lx/tx))**(1/2)
Hx = Ho * math.exp(-p*m)
return Hx
for mi, m in enumerate(range(0, 3000, 30)):
print(f'Working on distance {m} - step {mi}')
for si, sx in enumerate(s):
for ti, tx in enumerate(t):
for li, lx in enumerate(l):
hx = jimmy_jao_formula(m, sx, tx, lx)
#formula Jimmy Jao
result[si, ti, li, mi] = hx
distance[mi] = m
# plot the result.
plt.figure(figsize=(20,10))
for a in range(3):
for b in range(3):
for c in range(3):
plt.plot(distance, result[a, b, c, :])