1. networkxの概要
NetworkXは、グラフ(またはネットワーク)データ構造とグラフアルゴリズム、ジェネレーター、描画ツールを提供します。
関数、メソッド、変数の名前はlower_case_underscoreです(小文字、アンダースコアは単語間のスペースを示します)。
第二に、基本
1.インポートモジュール
networkxをnxとしてインポートする
2.画像/ネットワーク
グラフの種類
- グラフ:複数のエッジのない無向グラフ。2つのノード間の複数のエッジを無視し、ノード自体がループを形成できるようにします。
- DiGraph:複数のエッジのない有向グラフ
- マルチグラフ:マルチエッジ無向グラフがあり、ノードのペア間に複数の無向エッジを許可します。
- MultiDIGraph:複数のエッジを持つ有向グラフ
すべてのグラフは、任意の許可された利用可能なハッシュオブジェクトをノードとして。ハッシュ可能なオブジェクトには、文字列、タプル、整数などが含まれます。重みやラベルなどのエッジ属性は、エッジに関連付けることができます。
Nx.Graph = G() #は空のネットワークマップ作成 G = nx.DiGraph() G = nx.MultiGraph() G)(= nx.MultiDiGraphを
グラフの作成:(3つの方法)
- binomial_graphやpowerlaw_graphなどのグラフジェネレーター
- nx.read_adjlistなどのテキストソースからデータを読み込む
- 空のグラフを個別に作成し、ポイントとエッジを追加する
3.ノードとエッジ
- ノード:整数/文字列/ノードを説明するデータ構造
- エッジ:キーワード/値のペア['weight'以外の任意のキーワードを使用して属性に名前を付けることができます。このキーワードでエッジをクエリできます]
#追加ポイント G.add_node(' A ')位点A追加 G.add_node(1,1) #座標追加
Gを。Add_node (数学。COS )任意にAノードすることができ#ハッシュ可能
#追加の縁
G.add_edgeを(' X '、' Y ')#の追加縁、Xで開始、終了点y、デフォルトエッジ値。1
G.add_edge(1,3、重量= 0.9) #アドイン縁、から始まります1、終点は2、重み値は0.9です
G 。add_edge ('Y' 、'X' 、機能= 数学。COS ) #Edge属性は何もすることができます
G.add_weight_edges_from([(' X '、' Y '、1.0)]) #第三の入力は、重量で #は、であってもよい 一覧= [[(' A '、' B '、5.0)、(' B '、' c '、3.0)、(' a '、' c '、1.0 )] G.add_weight_edges_from([(list)])
4.グラフィック表示
matplotlibをインポートする必要があります import matplotlib.pyplot as plt nx.draw(G) #nx.draw_networkx(G) plt.show()
#グラフィックをより美しくしたい場合
nx.draw(G、pos = nx.random_layout(G)、node_color = 'b'、edge_color = 'r'、with_labels = True、font_size = 18、node_size = 20)
posは、主にspring_layout、random_layout、circle_layout、shell_layoutを含むレイアウトを指します。node_colorはノードの色を示し、rbykwは同じedge_colorです
。with_labelsはノードが名前を表示するかどうかを示し、sizeはサイズを示し、font_colorは単語の色を示します。