У меня есть скрипт, который должен циклически проходить по сериям CSV-файлов для создания различных ориентированных графов.При сохранении с помощью matplotlib (plt.savefig ()) графики, по-видимому, сохраняются друг над другом в ходе цикла.Если я использую plt.show (), которая требует от меня вручную закрывать файл для каждого цикла, этого не происходит.То же самое, если я делаю через отладчик.Может ли кто-нибудь дать мне какой-нибудь совет относительно того, что может происходить?
"""Script to read in CSV file with relations (after having processed with weighting),
and then make a tree hierarchy of relations
"""
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
import os
#create graph
def panda_tree():
path = './CONLL_test/weighted/weighted_out/'
filelist = os.listdir(path)
i = 1
# read in files as dataframe and change to lists
for file in filelist:
if file.endswith('csv'):
parent_child_rel = pd.read_csv(path+file)
parents = parent_child_rel['parent']
children = parent_child_rel['child']
# change lists to tuples
relations = pd.DataFrame({'from': parents, 'to': children})
print(relations)
# Build your graph
graph_name = 'G%s' %i
graph_name=nx.from_pandas_edgelist(relations, 'from', 'to', create_using=nx.DiGraph())
# Plot it
nx.draw(graph_name, with_labels=True)
filename = os.path.splitext(file)
(f, ext) = filename
plt.savefig(path+'directed/'+f+'_dirgraph.png')
i+=1
def main():
panda_tree()
if __name__ == '__main__':
main ()
Файлы представляют собой кадры данных, содержащие все меньше данных, поскольку я включаю данные только в том случае, если их число превышает 10, 20 и т. Д., До 100.График 100 является самым загруженным, и когда я запускаю его самостоятельно, у меня нет этой проблемы.Кто-нибудь еще когда-либо имел эту проблему, или кто-нибудь может подсказать мне, как ее преодолеть?Данные являются родительскими дочерними отношениями (парами).