python – 使用networkx的节点标签

前端之家收集整理的这篇文章主要介绍了python – 使用networkx的节点标签前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在由curveSeq持有的给定的Y值序列创建一个图形. (X值自动枚举:0,1,2 …)

即对于curveSeq = [10,20,30],我的图表将包含以下几点:

<0,10>,<1,20>,<2,30>.

我在同一个nx.Graph上绘制了一系列图表,以便将一切都放在一张照片中.

我的问题是:

>每个节点显示其位置.即位置< 0,10>中的节点呈现各自的标签,我不知道如何删除它.
>有特定的节点,我想添加一个标签,但我不知道如何.

例如,序列:

[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]

收到的图是:

代码是:

for point in curveSeq:
                cur_point = point
                #assert len(cur_point) == 2
                if prev_point is not None:
                    # Calculate the distance between the nodes with the Pythagorean
                    # theorem
                    b = cur_point[1] - prev_point[1]
                    c = cur_point[0] - prev_point[0]
                    a = math.sqrt(b ** 2 + c ** 2)
                    G.add_edge(cur_point,prev_point,weight=a)
                G.add_node(cur_point)
                pos[cur_point] = cur_point
                prev_point = cur_point
            #key:
            G.add_node((curve+1,-1))
            pos[(curve+1,-1)] = (curve+1,-1)

            nx.draw(G,pos=pos,node_color = colors[curve],node_size=80)
            nx.draw_networkx_edges(G,alpha=0.5,width=8,edge_color=colors[curve])

     plt.savefig(currIteration+'.png')

解决方法

您可以添加with_labels = False关键字来禁止使用networkx.draw()绘制标签,例如.
networkx.draw(G,node_color=colors[curve],node_size=80,with_labels=False)

然后画出具体的标签

networkx.draw_networkx_labels(G,pos,labels)

其中label是将标签映射到标签的节点.

看看这个例子http://networkx.github.com/documentation/latest/examples/drawing/labels_and_colors.html

原文链接:https://www.f2er.com/python/186047.html

猜你在找的Python相关文章