我有以下for循环,该循环遍历CSV文件的文件夹并执行一些计算。这种计算是在file1.csv versus file2.csv
和file1.csv versus file3.csv
之类的一对一文件计算之间完成的。
我现在能够将计算的输出保存到具有特定文件夹的CSV文件中,但是我还尝试为每个计算生成热图,例如file1.csv vs file2.csv
并将图形保存到特定的路径中我想要的。我只能为2个文件计算生成热图,但是当我想在以下for循环中进行操作时,它将所有结果保存为一个图:
这是代码
# read the files
for dirName, subdirList, Myfile in os.walk(path):
print('Directory: %s' % dirName)
for files in Myfile:
print('\t%s' % files)
# apply one to one compuattion between the files
for i in range(len(Myfile)):
print(Myfile)
for j in range(i+1, len(Myfile)):
CSV1 = pd.read_csv(path+'/'+Myfile[i], error_bad_lines=False);
CSV2 = pd.read_csv(path+'/'+Myfile[j], error_bad_lines=False);
df1 = pd.DataFrame(data=f1)
df2 = pd.DataFrame(data=f2)
result = calculate_stock(df1, df2)
# generate the heatmaps for heach one to one computation
ax = sns.heatmap(result, linewidth=0.5)
# save the figure
figure = ax.get_figure()
figure.savefig('svm_conf.png', dpi=400)
result.to_csv(path+'/'+ Myfile[i]+'_versus_'+ Myfile[j],index=True)
当我尝试如下操作时:
figure.savefig(path+'/'+ Myfile[i]+'_versus_'+Myfile[j], format='png', index=True)
它将文件另存为CSV,而不是png文件,并且CSV内充满随机字母。
如果您能告诉我如何解决此问题,那就太好了。
答案 0 :(得分:0)
看起来format参数工作不正常。请使用下面的代码。
figure.savefig(path+'/'+ Myfile[i]+'_versus_'+Myfile[j]+'.png')