【发布时间】:2020-03-31 21:41:21
【问题描述】:
我正在使用 NetworkX 来可视化具有 > 1000 个节点的大图。作为可视化的一部分,我希望能够突出显示某些节点。
我见过this question 并且知道 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()
但是,对于大量节点,我不得不显着减小节点大小,否则它只会显示为重叠节点的模糊云,因此更改节点颜色无效。
理想情况下,我想做的是将标签字体颜色更改为,例如,选定节点的文本标签为红色。然而,与 node_color 不同,NetworkX 似乎只提供了一个全局参数 font_color 来更改所有节点标签的颜色,它不会接受,例如font_color=colours.
如果有任何方法通过 NetworkX 或 Matplotlib 更改特定节点/节点组的字体颜色,或添加任何类型的标注,或以任何其他方式突出显示某些节点而不依赖于更改 @987654328 @?
【问题讨论】:
标签: python matplotlib networkx