簡體   English   中英

使用 networkx 的節點標簽

[英]Node labels using 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,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,pos=pos,alpha=0.5,width=8,edge_color=colors[curve])

     plt.savefig(currIteration+'.png')

您可以添加with_labels=False關鍵字來禁止使用networkx.draw()繪制標簽,例如

networkx.draw(G, pos=pos, node_color=colors[curve],
    node_size=80, with_labels=False)

然后繪制特定的標簽

networkx.draw_networkx_labels(G,pos, labels)

其中,labels 是將節點 id 映射到標簽的字典。

看看這個例子: https : //networkx.org/documentation/stable/auto_examples/drawing/plot_labels_and_colors.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM