udało się wytworzyć wykres poprawnie, ale z dalszych testów zauważyć wynik niezgodny z następującego dwóch różnych linii kody:NetworkX - zmiana barwy/szerokość według cech krawędzi - sprzeczny wynik
nx.draw_circular(h,edge_color=[h.edge[i][j]['color'] for (i,j) in h.edges_iter()], width=[h.edge[i][j]['width'] for (i,j) in h.edges_iter()])
nx.draw_circular(h,edge_color=list(nx.get_edge_attributes(h,'color').values()), width=list(nx.get_edge_attributes(h,'width').values()))
Pierwszy wyniki wierszy są spójne, podczas gdy drugie dają zły kolor/rozmiar na zamówienie krawędzi.
Jednak wygląda na to, że powyższe dwie linie opierają się na wywołaniu funkcji, aby zwrócić atrybuty według kolejności krawędzi. Dlaczego różne wyniki?
Wygląda trochę nieporadnie, aby uzyskać dostęp do atrybutów z h[][][]
; czy można uzyskać do niego dostęp poprzez konwencję kropkową, np. edge.color for edge in h.edges()
.
Czy coś mi umknęło?
tkyou! twój kod jest w zasadzie taki sam jak mój pierwszy wiersz kodów. ale masz na myśli, że funkcja get_edges_attributes nie zwróci krawędzi w kolejności, w jakiej występują krawędzie()? – timeislove