エッジにウェイトを累積して累積したいnetworkxグラフを描画しています。以下のコードは、エッジの最後の重みだけではなく、累積合計を取得します。 5つのノードと3つのエッジがあります。エッジは('A', 'B'), ('A', 'D')
,('C', 'E')
であり、重みは[1, 1, 1]
です。体重が欲しいのは[2, 2, 1]
ではなく、[1, 1, 1]
です。助けが必要。 Tks。累積合計を持つエッジのNetworkxウェイト
1.グラフを描くDF
import pandas as pd
import networkx as nx
ints = [1] * 5
a = ['A', 'B', 'C', 'A', 'A']
b = ['D', 'A', 'E', 'D', 'B']
df = pd.DataFrame(ints, columns=['weight'])
df['a'] = a
df['b'] = b
df
weight a b
0 1 A D
1 1 B A
2 1 C E
3 1 A D
4 1 A B
2を作成します。
G=nx.from_pandas_dataframe(df, 'a', 'b', ['weight'])
edges = G.edges()
weights = [G[u][v]['weight'] for u,v in edges]
pos = nx.circular_layout(G)
nx.draw(G, pos, with_labels=True, width=weights)
グレート、@Mikk、TKS。 –