У меня есть flat_list значений, которые я разделял на сублисты одинакового размера D для набора пациентов. Данные каждого пациента построены с течением времени (дни), и я хочу нарисовать вертикальную пунктирную линию в том же цвете, что и кривая пациента на последнем не нановом X-положении каждого сублиста. Пунктирные линии должны простираться от глобального Y_MIN - смещение на y_max + смещение. < /P>
Вот минимальный пример: < /p>
У меня есть flat_list значений, которые я разделял на сублисты одинакового размера D для набора пациентов. Данные каждого пациента построены с течением времени (дни), и я хочу нарисовать вертикальную пунктирную линию в том же цвете, что и кривая пациента на последнем не нановом X-положении каждого сублиста. Пунктирные линии должны простираться от глобального Y_MIN - смещение на y_max + смещение. < /P> Вот минимальный пример: < /p> [code]import matplotlib.pyplot as plt import numpy as np
def plot_app_efficiency(flat_list, D, P): if len(flat_list) % D != 0: raise ValueError("The length of the list must be a multiple of D.")
# Split data for each patient patient_data = {} for idx, p_id in enumerate(P): start_idx = idx * D end_idx = (idx + 1) * D patient_data[p_id] = flat_list[start_idx:end_idx]
# X-axis: days from 1 to D days = list(range(1, D + 1))
# Calculate global y_min and y_max across all patients all_values = np.concatenate([np.array(values) for values in patient_data.values()]) y_min = np.nanmin(all_values) y_max = np.nanmax(all_values)
for patient, values in patient_data.items(): values = np.array(values) line, = ax.plot(days, values, label=f'Patient {patient}', marker='o')
# Find the last valid (non-NaN) value valid_indices = np.where(~np.isnan(values))[0] if len(valid_indices) > 0: last_valid_index = valid_indices[-1] x_val = days[last_valid_index]
# Axis labels and title ax.set_xlabel('Days (D)') ax.set_ylabel('Value') ax.set_title('Values per patient over days')
У меня есть flat_list значений, которые я разделял на сублисты одинакового размера D для набора пациентов. Данные каждого пациента построены с течением времени (дни), и я хочу нарисовать вертикальную пунктирную линию в том же цвете, что и кривая...
У меня есть flat_list значений, которые я разделял на сублисты одинакового размера D для набора пациентов. Данные каждого пациента построены с течением времени (дни), и я хочу нарисовать вертикальную пунктирную линию в том же цвете, что и кривая...