После того, как я нанес точки на график, мне нужно построить перпендикуляр и определить 1 или 2 ближайшие линии графика для каждую точку от df и найдите расстояние до этих линий. Затем спроецируйте точку на ось Y между двумя ближайшими линиями графика. А затем найдите значение по оси Y и запишите его в новый столбец. Мой график
Как мне решить эту проблему?
Вот код, который я получил от ИИ
Код: Выделить всё
def project_point(row):
r = row['R']
intensity = row['Intensity']
dists = []
for col in ['80%', '60%', '40%', '20%']:
ref_intensities = distance_ref[distance_ref['R'] == r][col].values
if len(ref_intensities) > 0:
dists.append((np.abs(ref_intensities - intensity), col))
dists.sort()
closest_graph1, closest_graph2 = dists[:2]
intensity1 = distance_ref[distance_ref['R'] == r][closest_graph1[1]].values[0]
intensity2 = distance_ref[distance_ref['R'] == r][closest_graph2[1]].values[0]
dist1, dist2 = closest_graph1[0], closest_graph2[0]
total_dist = dist1 + dist2
projected_intensity = (intensity2 * dist1 + intensity1 * dist2) / total_dist
return projected_intensity
df['Intensity_distance'] = df.apply(project_point, axis=1)
Подробнее здесь: https://stackoverflow.com/questions/784 ... the-y-axis