Преобразование табличных данных в формат graphviz DOT

#graphviz

#graphviz

Вопрос:

У меня есть табличные данные со следующими полями, составляющими запись:

  • SourceID
  • Исходная метка
  • SourceGroupID
  • TargetID
  • TargetLabel
  • TargetGroupID

Я хотел бы преобразовать эти данные в формат graphviz DOT либо программно, либо как часть скрипта. В частности, я хотел бы кластеризировать узлы в соответствии с их идентификатором группы.

Похоже, что это было бы обычной задачей — существуют ли существующие инструменты / примеры кода (предпочтительно Python или R), которые делают это?

Ответ №1:

Похоже, библиотека NetworkX для Python может делать то, что вы хотите. Что вам нужно сделать, это прочитать список ребер (см. networkx.readwrite.edgelist ), обработать его для создания групп или чего-либо еще, что вам нужно, и записать файл Graphvis dot (см. networkx.drawing.nx_pydot.write_dot ).

NetworkX может выполнять другие визуализации графиков самостоятельно, без Graphvis (галерея, документы), и может экспортировать многие другие форматы, включая GraphML. Существует множество инструментов с открытым исходным кодом для визуализации графиков, которые могут импортировать GraphML, например, NodeXL, отличный вводный инструмент, который интегрирует сетевой анализ в Excel 2007/2010 (отказ от ответственности: Я консультант по этому вопросу). Другие замечательные инструменты включают Gephi и Cytoscape, в то время как Pajek и UCINet являются некоторыми проприетарными альтернативами.