Как получить статистику сети graph в библиотеке python graphviz?

#python #graphviz

#python #graphviz

Вопрос:

У меня есть файл .gv, и мне нужно получить статистику в python, например:

  • Количество ребер
  • Количество узлов
  • Количество деревьев в сети
  • узлы и ребра в дереве

Как я могу получить эту информацию в python?

Комментарии:

1. Вы имеете в виду файл .gv?

2. да. спасибо! Обновил ее.

Ответ №1:

Вы можете использовать, например, pygraphviz.

 $ pip3 install pygraphviz
  

Затем на python, чтобы ответить на два ваших первых вопроса

 >>> from pygraphviz import AGraph
>>> graph = AGraph('test.dot')
>>> edge_count = len(list(graph.iteredges()))
>>> node_count = len(list(graph.iternodes()))
>>> print(node_count, edge_count)
  

Для подсчета деревьев вам нужно будет придумать какую-нибудь рекурсивную функцию: используйте .iteredges() метод, который дает вам головной и хвостовой узлы, которые подключаются. Соберите эту информацию в некоторую структуру данных по вашему выбору и получите необходимую статистику.

Комментарии:

1. Но у меня есть файл .gv. предоставляет ли она также поддержку для файлов .gv?

2. @AhsanFarooqui не имеет значения, какое расширение имеет файл. Важно то, что содержимое файла является исходным кодом Grapviz graph. .dot и .gv обычно используются взаимозаменяемо для файлов с такими исходными кодами. Вы также можете использовать другое расширение или вообще без расширения : )