ノードと有向エッジの大きなグラフがあります。さらに、各ノードに割り当てられた値の追加リストがあります。
ノード値に応じて各ノードの色を変更します。たとえば、非常に高い値の赤のノードと低い値の青のノード(ヒートマップに類似)を描画します。これは何とか簡単に達成できますか? networkxを使用していない場合は、Pythonの他のライブラリも開いています。
_import networkx as nx
import numpy as np
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_edges_from(
[('A', 'B'), ('A', 'C'), ('D', 'B'), ('E', 'C'), ('E', 'F'),
('B', 'H'), ('B', 'G'), ('B', 'F'), ('C', 'G')])
val_map = {'A': 1.0,
'D': 0.5714285714285714,
'H': 0.0}
values = [val_map.get(node, 0.25) for node in G.nodes()]
nx.draw(G, cmap=plt.get_cmap('viridis'), node_color=values, with_labels=True, font_color='white')
plt.show()
_
values
の番号は、G.nodes()
のノードに関連付けられています。つまり、values
の最初の番号はG.nodes()
の最初のノードに関連付けられ、2番目のノードにも同様に関連付けられます。