创建带有节点的图形为带有文本的圆圈

时间:2018-12-30 11:46:46

标签: python canvas graph networkx

使用Networkx,我正在创建一个图形,

我想将每个节点创建为一个圆,然后定义边缘。

    from tkinter import *
    import networkx as nx
    G=nx.Graph()
    G.add_node(0) # text say ,"Hello" placed in circle/rectangle 

在给出的here示例中,我尝试使用画布创建文本标签

Canvas.drawText(10, 20, "A Text String")

出现以下错误,

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'Canvas' has no attribute 'drawText'

关于如何解决此问题的任何建议,还是有其他方法可以将每个节点创建为包含文本的圆/矩形?

1 个答案:

答案 0 :(得分:1)

绘制Networkx图的最简单方法是通过其drawing API。

例如:

import networkx as nx
import matplotlib.pyplot as plt

G = nx.barabasi_albert_graph(20, 2)
nx.draw_networkx(G, with_labels=True, labels={node : 'some text {}'.format(node) for node in G.nodes()})
plt.show()

将导致类似: enter image description here