Как создать тепловую карту внутри цикла for? - PullRequest
1 голос
/ 27 июня 2019

У меня есть следующий цикл for, который проходит через папку файлов CSV и выполняет некоторые вычисления. Это вычисление выполняется между вычислениями файлов один на один, например file1.csv versus file2.csv, file1.csv versus file3.csv и т. Д.

Теперь я могу сохранять результаты вычислений в CSV-файл с определенной папкой, но я также пытаюсь сгенерировать тепловую карту для каждого вычисления, например, file1.csv vs file2.csv и сохранить рисунок по определенному пути, который я хочу. Я могу сгенерировать тепловую карту только для вычисления двух файлов, но когда я хочу сделать это в следующем цикле 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 полно произвольных алфавитов.

Было бы здорово, если бы вы сообщили мне, как я могу решить эту проблему.

1 Ответ

0 голосов
/ 27 июня 2019

Похоже, параметр формата не работает должным образом. Пожалуйста, используйте код ниже.

figure.savefig(path+'/'+ Myfile[i]+'_versus_'+Myfile[j]+'.png')
...