
У меня есть файл Excel с большим номером. Из данных эксперимента данные каждого эксперимента начинаются со значения столбца времени 00:00:00. Время окончания не одинаково для всех. Я хочу, чтобы все данные эксперимента отображались на одном графике.
В настоящее время я написал сценарий Python, он строит графики хорошо, но я столкнулся с одной проблемой: конечная точка первого эксперимента связана через линия с первой точкой второго эксперимента, которая мне не нужна.
также, когда меня пытались построить график каждого пятого эксперимента, цвет каждого эксперимента не менялся
Я попробовал этот код, но он не может решить проблему
file_path = os.path.join(source_folder, file_name)
df = pd.read_excel(file_path, sheet_name='record')
filtered_df = df[df.iloc[:, 3] == 'CC DChg']
selected_columns = ['Time', 'Current(A)', 'Voltage(V)', 'Capacity(Ah)', 'Energy(Wh)']
filtered_selected_df = filtered_df[selected_columns]
start_indices = filtered_selected_df[filtered_selected_df['Time'] == '00:00:00'].index
plt.figure(figsize=(8, 6))
num_experiments = len(start_indices)
#colors = plt.cm.viridis(np.linspace(0, 1, num_experiments))
for i in range(0, num_experiments):
start_idx = start_indices
if i + 1 < num_experiments:
end_idx = start_indices[i + 1]
else:
end_idx = len(filtered_selected_df)
experiment_data = filtered_selected_df.iloc[start_idx:end_idx]
if i != 0:
experiment_data = pd.concat([pd.DataFrame({'Capacity(Ah)': [float('nan')], 'Voltage(V)': [float('nan')]}),
experiment_data])
plt.plot(experiment_data['Capacity(Ah)'], experiment_data['Voltage(V)'],marker='o', linestyle='-',
label=f'cycle {i + 1}')
plt.legend()
plt.title(f'Voltage vs Capacity for {file_name}')
plt.xlabel('Capacity(Ah)')
plt.ylabel('Voltage(V)')
plt.grid(True)
plt.show()
Подробнее здесь: https://stackoverflow.com/questions/790 ... ith-python
Мобильная версия