Я столкнулся с ошибкой, и я не совсем знал, в чем проблема и почему я получаю эту ошибку. В моем сценарии пользователи вводят текстовый файл и создают данные из этого текстового файла. Я извлекаю и сохраняю один из столбцов таблицы данных по отдельности (я «выделил» ввод, из-за которого ошибка упрощается).
**File_Names=[]**
print('Enter name of peaklist files. When finished, type done and enter to stop.')
while True:
Titration_file_input = input()
if Titration_file_input.lower() not in ['done']:
Titration_files.append(Titration_file_input)
else:
break
for Data in Titration_files:
try:
Titration_Datatable = pd.read_csv(Data, sep='\s+', header=None)
Titration_Datatable.columns=['Column_1','Column_2','Column_3', 'Column_4', 'Column_5']
Data_Table.append(Titration_Datatable)
except:
print('File' + ' ' + Data + ' ' + 'not found')
for Titration_Datatable in Data_Table:
Peak_Height.append(Titration_Datatable.loc[:,'Column_4'])
**File_Names.append(Titration_Datatable.loc[:,'Column_1'].drop([0],axis=0).drop([1],axis=0))**
Позже я призываю его использовать в качестве заголовкаиз файлов сохранения для сгенерированных графиков.
for values,i in zip(Titration_Data,File_Names):
Intensity=[values]
Intensity_Array=np.array(Intensity)
y=Intensity_Array.flatten()
popt, pcov = curve_fit(fun, x, y)
kD.append(popt)
fun_data=fun(x,*popt)
output_for_graphing.append(fun_data)
residuals=y-fun(x, popt)
ss_res=np.sum(residuals**2)
ss_tot=np.sum((y-np.mean(y))**2)
r_squared=1-(ss_res/ss_tot)
r2.append(r_squared)
std = np.sqrt(np.diag(pcov))
standard_deviation.append(std)
plt.plot(x, y, label='data')
plt.plot(x, fun(x, *popt), label='fitted')
plt.xlabel('Ligand Concentration')
plt.ylabel('Intensity')
plt.title([i])
plt.grid()
plt.legend()
**files_to_save=str([i])+'.png'
plt.savefig(files_to_save)**
plt.show()
Ошибка, которую я получаю, такова:
plt.savefig(files_to_save)
OSError: [Errno 22] Invalid argument: '[2 1XH-HN\n3 2XH-HN\n4 3XN-HN\n5 4XN-HN\n6 5XN-HN\n7 6XN-HN\n8 7XN-HN\n9 8XN-HN\nName: Column_1, dtype: object].png'
Я подумал, может быть, это проблема с форматированием, может быть, если я сделаю его в виде списка или массива, он будет работать. Но когда я изменил его на массив, я получаю следующую ошибку:
plt.savefig(files_to_save)
OSError: [Errno 22] Invalid argument: "[array(['1XH-HN', '2XH-HN', '3XN-HN', '4XN-HN', '5XN-HN', '6XN-HN',\n '7XN-HN', '8XN-HN'], dtype=object)].png"
На данный момент я не знаю, почему я получаю ошибку форматирования. Единственное, о чем я мог подумать, это то, что plt.savefig не принимает дефисы или он не может их читать (например, просто нужно определить, какая кодировка используется)? Спасибо заранее!