Python学習(32)--- networkx

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つの方法)

  1. binomial_graphやpowerlaw_graphなどのグラフジェネレーター
  2. nx.read_adjlistなどのテキストソースからデータを読み込む
  3. 空のグラフを個別に作成し、ポイントとエッジを追加する

 

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は単語の色を示します。

 

おすすめ

転載: www.cnblogs.com/Lee-yl/p/12684966.html