Я не эксперт по networkx
либо, но, в соответствии с документацией here:
мультиграфы NetworkX предоставляет классы для графов, которые позволяют несколько ребер между любой парой узлов. Классы MultiGraph и MultiDiGraph позволяют вам добавить один и тот же край дважды, возможно, с различными данными о краю. Это может быть мощным для некоторых приложений, , но многие алгоритмы на этих графах не определены. Самый короткий путь - один из примеров. Где результаты хорошо определены, например. MultiGraph.degree() мы предоставляем функцию. В противном случае вы должны преобразовать в стандартный график таким образом, чтобы определить измерительную скважину .
Таким образом, пример должен работать, если одно изменение сделано - создать G
следующим образом:
G = nx.MultiGraph()
его довольно легко просто генерировать свой собственный источник DOT ... не знаю, как вы могли бы сделать это с networkx –
@JoranBeasley Можете ли вы подробно остановиться на источнике DOT? :-) –
http://www.graphviz.org/content/dot-language (см .: https://stamm-wilbrandt.de/GraphvizFiddle/?1498108430658#digraph%20G%20%7B%0A%20%20a % 20-% 3E% 20b% 20% 5B% 20label% 20% 3D% 20% 22foo% 22% 20% 5D% 3B% 0A% 20% 20a% 20-% 3E% 20b% 20% 5B% 20label% 20 % 3D% 20% 22bar% 22% 20% 5D% 3B% 0A% 7D) –