Networkx рисование изогнутых краев работает только для орграфов, а не для графиков

#python #networkx

Вопрос:

Пожалуйста, рассмотрите эти сети и следующую команду рисования в Networkx:

 G.edges(data=True)
OutEdgeDataView([('Paperino', 'LadyCocca', {'weight': 1}), ('Paperino', 'Doraemon', {'weight': 1}), ('Paperino', 'Pollon', {'weight': 1}), ('Aurora', 'Stich', {'weight': 5}), ('Aurora', 'Adelina', {'weight': 4}), ('Stich', 'Aurora', {'weight': 5}), ('Stich', 'LadyCocca', {'weight': 1}), ('Stich', 'Crudelia', {'weight': 1}), ('Stich', 'Pollon', {'weight': 3}), ('LadyCocca', 'Paperino', {'weight': 1}), ('LadyCocca', 'Stich', {'weight': 1}), ('LadyCocca', 'Yattaman', {'weight': 1}), ('LadyCocca', 'Brontolo', {'weight': 2}), ('Crudelia', 'Stich', {'weight': 1}), ('Crudelia', 'Doraemon', {'weight': 1}), ('Crudelia', 'Pollon', {'weight': 1}), ('Adelina', 'Aurora', {'weight': 4}), ('Adelina', 'Yattaman', {'weight': 1}), ('Adelina', 'Brontolo', {'weight': 1}), ('Doraemon', 'Paperino', {'weight': 1}), ('Doraemon', 'Crudelia', {'weight': 1}), ('Doraemon', 'Yattaman', {'weight': 1}), ('Yattaman', 'LadyCocca', {'weight': 1}), ('Yattaman', 'Adelina', {'weight': 1}), ('Yattaman', 'Doraemon', {'weight': 1}), ('Yattaman', 'Pollon', {'weight': 1}), ('Brontolo', 'LadyCocca', {'weight': 2}), ('Brontolo', 'Adelina', {'weight': 1}), ('Pollon', 'Paperino', {'weight': 1}), ('Pollon', 'Stich', {'weight': 3}), ('Pollon', 'Crudelia', {'weight': 1}), ('Pollon', 'Yattaman', {'weight': 1})])

G1.edges(data=True)
EdgeDataView([('Paperino', 'LadyCocca', {'weight': 2}), ('Paperino', 'Doraemon', {'weight': 2}), ('Paperino', 'Pollon', {'weight': 2}), ('Aurora', 'Stich', {'weight': 10}), ('Aurora', 'Adelina', {'weight': 8}), ('Stich', 'LadyCocca', {'weight': 2}), ('Stich', 'Crudelia', {'weight': 2}), ('Stich', 'Pollon', {'weight': 6}), ('LadyCocca', 'Yattaman', {'weight': 2}), ('LadyCocca', 'Brontolo', {'weight': 4}), ('Crudelia', 'Doraemon', {'weight': 2}), ('Crudelia', 'Pollon', {'weight': 2}), ('Adelina', 'Yattaman', {'weight': 2}), ('Adelina', 'Brontolo', {'weight': 2}), ('Doraemon', 'Yattaman', {'weight': 2}), ('Yattaman', 'Pollon', {'weight': 2})])
 

G1-это точно такой же график G, сделанный неориентированным путем суммирования весов ребер. Теперь я хотел бы нарисовать оба графика с изогнутыми краями, используя одну и ту же точную команду. Но это возможно только для ориентированного графа G. Если G1 передается в качестве входных данных в той же функции, используются прямые линии. Можете ли вы сказать мне, почему и как это исправить? Пожалуйста, ознакомьтесь с командой, используемой для рисования, и приведенными ниже результатами:

 nx.draw(G, pos=nx.kamada_kawai_layout(G), cmap=plt.get_cmap("brg"),node_color="#FF0000", node_size = 80, with_labels=False, node_shape="o",
        font_color='black', font_size= 12, font_weight = "bold",
        connectionstyle='arc3, rad=0.2', 
        arrowsize = 10, edge_color = "blue", 
        edgecolors = "blue", linewidths = 2, width = 2, 
        alpha = 0.8) 
 

Результат для G:

первый график

Результат для G1:

введите описание изображения здесь