web-dev-qa-db-ja.com

Node networkxを使用したラベル

curveSeqが保持するY値の指定されたシーケンスからグラフを作成しています。 (X値は自動的に列挙されます:0,1,2 ...)

つまり、curveSeq = [10,20,30]の場合、グラフには次のポイントが含まれます。

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

すべてを1つの画像に表示するために、同じnx.Graphに一連のグラフを描画しています。

私の問題は:

  • 各ノードはその場所を示します。つまり、場所<0,10>のノードはそれぞれのラベルを示しており、それを削除する方法がわかりません。
  • ラベルを追加したい特定のノードがありますが、その方法がわかりません。

たとえば、シーケンスの場合:

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

受信したグラフは次のとおりです。

graph

コードは次のとおりです。

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')
11
Maoritzio

_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をラベルにマッピングする辞書です。

この例を見てください http://networkx.github.com/documentation/latest/examples/drawing/labels_and_colors.html

21
Aric