Dav*_*uck 1 python matplotlib networkx
我正在使用 NetworkX 来可视化一个包含 > 1000 个节点的大图。作为可视化的一部分,我希望能够突出显示某些节点。
我已经看到了这个问题,并且知道 NetworkX 将允许您通过更改节点颜色来突出显示节点,如下所示:
import networkx as nx
import matplotlib.pyplot as plt
edges = [['A','B'], ['A','C'], ['A','D'], ['B','E'], ['B','F'], ['D','G'],['D','H'],['F','I'],['G','J'],['A','K']]
G = nx.Graph()
G.add_edges_from(edges)
colours = ['blue']*5 + ['red'] + ['blue']*5
nx.draw_networkx(G, font_size=16, node_color=colours)
plt.show()
Run Code Online (Sandbox Code Playgroud)
但是,对于大量节点,我不得不显着减小节点大小,否则它只会显示为重叠节点的模糊云,因此更改节点颜色无效。
理想情况下,我想要做的是将标签字体颜色更改为,例如,所选节点的文本标签的红色。node_color然而,NetworkX 似乎只提供一个全局参数font_color来更改所有节点标签的颜色,它不会t 接受,例如font_color=colours。
如果有任何方法可以通过 NetworkX 或 Matplotlib 更改特定节点/节点组的字体颜色,或添加任何类型的标注,或以任何其他方式突出显示某些节点而不依赖于更改node_color?
您可以在原始图的顶部绘制子图:
# generate node positions:
pos = nx.spring_layout(G)
# draw graph
nx.draw_networkx(G, pos=pos, font_size=16, node_color='blue', font_color='white')
# draw subgraph for highlights
nx.draw_networkx(G.subgraph('F'), pos=pos, font_size=16, node_color='red', font_color='green')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1328 次 |
| 最近记录: |