目次:
- import networkxをnx import matplotlibとしてインポートします。 plpl G = nxとしてpyplot。グラフ()H = nx。 add_node_from([2,3])G. add_nodes_from([1,2,3])G. add_nodes_from([1,2,3])G. add_nodes_from add_edges(1、1)G. add_edges_from([(2,3)、(3,6)、(4,6)、(5,6) 5,7)、(6,7)])G. add_edges_from(H。edges())nx。 draw_networkx(G)plt。 show()
- import networkx as nx import matplotlib)。 plpl G = nxとしてpyplot。 add_node_from([2,3])G. add_nodes_from(範囲(4,6))G. add_path([6,7,8])G. add_edge(1,2) G、add_edges_from([(1、4)、(4,5)、(2,3)、(3,6)、(5,6)])colors = ['r'、 'g'、 'g'ラベル= 1:開始、2:2、3:3、4:4、5: '5'、6: '6'、7: '7'、8: 'End'} sizes = [800,300,300,300,300,600,300,800] nx。 draw_networkx(G、node_color = colors、node_shape = "D"、with_labels = True、labels = labels、node_size = sizes)plt。 show()
ビデオ: Think Japan IBM Code Day [DA-1] 10万件もらくらく!Python Pandasを利用したデータ変換・データ分析 2024
グラフはデータ科学者にとって有益です。グラフ は、Pythopnの線を使用してデータ点間の接続を示すデータの描写である。目的は、いくつかのデータポイントが他のデータポイントに関連するが、グラフに表示されるすべてのデータポイントに関連しないことを示すことである。 地下鉄の地図を考えてみましょう。各ステーションは他のステーションに接続しますが、単一のステーションは地下鉄システムのすべてのステーションに接続しません。グラフはソーシャルメディア分析に使用されているため、一般的なデータ科学のトピックです。ソーシャルメディア分析を実行するときは、Facebook、Google+、Twitter、LinkedInなどのソーシャルハブから、友人やビジネス関係などの関係のネットワークを描き、分析します。
<!グラフの2つの一般的な描写は、
無向であり、グラフは単にデータ要素間の線を示し、 有向線 そのデータは特定の方向に流れます。例えば、水系の描写を考えてみましょう。ほとんどの場合、水は一方向に流れるだけなので、有向グラフを使用して、水源と目標の間の接続だけでなく、矢印を使用して水の方向を示すことができます。 <! -----> 無向グラフの作成
無向グラフは単にノード間の接続を示します。出力はあるノードから次のノードへの方向を提供しません。例えば、ウェブページ間の接続を確立する場合、方向は暗示されない。次の例は、無向グラフを作成する方法を示しています。import networkxをnx import matplotlibとしてインポートします。 plpl G = nxとしてpyplot。グラフ()H = nx。 add_node_from([2,3])G. add_nodes_from([1,2,3])G. add_nodes_from([1,2,3])G. add_nodes_from add_edges(1、1)G. add_edges_from([(2,3)、(3,6)、(4,6)、(5,6) 5,7)、(6,7)])G. add_edges_from(H。edges())nx。 draw_networkx(G)plt。 show()
この例では、さまざまな手法を使ってグラフを作成しています。まず、Networkxパッケージをインポートします。新しい無向グラフを作成するために、コードはGraph()コンストラクタを呼び出します。このコンストラクタは、属性として使用するためにいくつかの入力引数を取ることができます。ただし、属性を使用せずに完全に使用可能なグラフを作成することができます。これはこの例のようなものです。
<!ノードを追加する最も簡単な方法は、ノード番号でadd_node()を呼び出すことです。 add_nodes_from()を使用して、ノードのリスト、辞書、または範囲()を追加することもできます。実際には、必要に応じて他のグラフからノードをインポートすることができます。
この例で使用されているノードは数値に依存していますが、ノードに数値を使用する必要はありません。ノードは、単一の文字、文字列、または日付を使用することができます。ノードにはいくつかの制限があります。たとえば、ブール値を使用してノードを作成することはできません。
ノードは、最初は接続性がありません。それらの間に接続(エッジ)を定義する必要があります。単一のエッジを追加するには、add_edge()を呼び出して、追加するノードの番号を指定します。ノードと同様に、add_edges_from()を使用して、リスト、ディクショナリ、または別のグラフを入力として使用して複数のエッジを作成できます。この例の出力は次のとおりです(出力は若干異なりますが、接続は同じである必要があります)。無向グラフはノードを結んでパターンを形成する。有向グラフの作成
有向グラフは、始点から終点までの方向を示す必要がある場合に使用します。ある特定のポイントから別のポイントに到達する方法を示すマップを取得すると、開始ノードと終了ノードがそのようにマークされ、これらのノード(およびすべての中間ノード)間の線が方向を示します。
あなたのグラフは退屈である必要はありません。視聴者がさまざまな方法で追加情報を得るために、あなたはあらゆる種類の方法でそれらを飾ることができます。たとえば、カスタムラベルを作成したり、特定のノードに特定の色を使用したり、色を使用してグラフの意味を人々が理解できるようにすることができます。
また、エッジラインの重みを変更して、ノード間の特定のパスをより良いものとしてマークするための他の手法を使用することもできます。次の例は、有向グラフをドレスアップしてより面白くする方法を示しています(import networkx as nx import matplotlib)。 plpl G = nxとしてpyplot。 add_node_from([2,3])G. add_nodes_from(範囲(4,6))G. add_path([6,7,8])G. add_edge(1,2) G、add_edges_from([(1、4)、(4,5)、(2,3)、(3,6)、(5,6)])colors = ['r'、 'g'、 'g'ラベル= 1:開始、2:2、3:3、4:4、5: '5'、6: '6'、7: '7'、8: 'End'} sizes = [800,300,300,300,300,600,300,800] nx。 draw_networkx(G、node_color = colors、node_shape = "D"、with_labels = True、labels = labels、node_size = sizes)plt。 show()
この例は、DiGraph()コンストラクタを使用して方向グラフを作成することから始まります。 NetworkXパッケージは、MultiGraph()およびMultiDiGraph()グラフタイプもサポートしています。すべてのグラフタイプのリストを確認してください。
ノードを追加することは、無向グラフで作業するのと同じです。 add_node()とadd_nodes_from()を使用して複数のノードを使用して、単一ノードを追加できます。 add_path()呼び出しでは、ノードとエッジを同時に作成できます。呼び出しのノードの順序は重要です。あるノードから別のノードへのフローは、コールに供給されたリストの左から右に向かっています。
エッジを追加することは、無向グラフで作業することとほとんど同じです。 add_edge()を使用して1つのエッジを追加したり、add_edges_from()を使用して複数のエッジを一度に追加することができます。ただし、ノード番号の順序は重要です。フローは、各ペアの左のノードから右のノードに移動します。
この例では、特殊ノードの色、ラベル、形状(1つの図形のみ使用)、およびサイズを出力に追加します。引き続きdraw_networkx()を呼び出してタスクを実行します。ただし、表示されたパラメータを追加すると、グラフの外観が変わります。 labelsパラメータで指定されたラベルを表示するには、with_labelsをTrueに設定する必要があります。この例の出力を以下に示します。
有向グラフを使用して、ノード間の方向を示します。