我有以下代码来可视化networkx图形:
node_positions = networkx.spring_layout(graph)
networkx.draw_networkx_nodes(graph, node_positions)
networkx.draw_networkx_edges(graph, node_positions, style='dashed')
我想在每个节点上显示节点标签。graph.nodes()
将给出所有节点的列表,但如何使用它们来标记图上的节点?在
我试过了,但没用:
^{pr2}$编辑:
我尝试了以下方法,目前还有效:
for node,_ in graph.nodes(data="False"):
labels[node] = node;
networkx.draw_networkx_labels(graph,node_positions,labels,font_size=16)
如果还有什么优雅的方法,请告诉我。我觉得创建新的dict是过度的,多余的,不应该被要求。在
检查nx.draw source code或{a3}。我不太确定我是否正确地回答了您的问题,因为根据我的理解,这是一个相当直接的问题,您可以简单地为图添加标签,如下所示:
也可以直接使用draw_spring,而不必明确指定节点位置:
^{pr2}$此图显示运行以下代码的结果:
您的问题是,您发送了一个图表节点列表,而不是一个可选参数,因为它需要dict。通过使用这个可选参数,networkx允许您显示任何您想要的标签。在您的例子中,只需要节点名称的明显标签。这是默认行为。很简单
就够了。不要发送dict,它将使用节点名来标记它们。在
另一种选择是完全按照abdallah的建议来做,并使用
with_labels=True
选项在一个networkx.draw
命令中绘制整个图形。在对您问题的格式进行简要评论
当我最初阅读您的问题时,我假设
draw_networkx_labels
命令给出的输出与您预期的不同。在现在我已经试过你的代码了,我发现它实际上给出了一个错误。告诉我们错误是
如果你得到一条错误信息,它包含了关于问题所在的信息,那么为了将来的参考。如果你发布问题,也要发布错误消息。在
相关问题 更多 >
编程相关推荐