あなたのコードを見ると、あなたが何を考えていたのか正確にはわからないので、直接作業するのは難しいです。ただし、Python でグラフを作成し、Matplotlibでレンダリングする方法を紹介できます。
Networkxは、グラフを生成し、分析し、Matplotlib または Graphviz を介してレンダリングするための優れた Python ライブラリです。例えば、
from matplotlib import pyplot as MPL
import networkx as NX # import networkx
Networkx でグラフを作成するには、データ ファイルをインポートするか (Networkx にはフォーマット間で変換するためのかなりのモジュールがあります)、Networkx の gtraph ジェネレーターの 1 つを使用します。以下に示すグラフを生成するには、特定のタイプの二項ランダム グラフerdos-renyi を作成します。
Networkx でグラフを作成するには、グラフ コンストラクターを呼び出して、目的のノード数とエッジ作成確率を渡します。
G = NX.erdos_renyi_graph(10, .3)
このグラフを Networkx でレンダリングするのは簡単です。draw を呼び出してグラフに渡すだけです。舞台裏で、Network は、Matplotlib でグラフをレンダリングするために必要なすべてのデータ (ノード位置、スタイル属性、ラベルなど) を渡し、Matplotlib のplotメソッドを呼び出して、このすべてのデータを渡します。Matplotlib との唯一のやり取りが必要です。ユーザーは、showまたはsavefigを呼び出して、それぞれ画面またはファイルにレンダリングします。
NX.draw(G)
MPL.show()
グラフを自分で生成したい場合は、それを Networkx に渡して Matplotlib 経由でレンダリングします。これも簡単です。たとえば、以下では、隣接行列を表す5 x 5 NumPy 配列を作成します(スパース グラフ データを表す最も一般的な形式)。
>>> G = NP.random.randint(0, 2, 25).reshape(5, 5)
>>> G
array([[0, 0, 1, 0, 1],
[1, 0, 0, 1, 1],
[0, 0, 1, 0, 1],
[0, 0, 1, 1, 1],
[0, 1, 0, 0, 1]])
次に、有向グラフの標準 Networkx コンストラクターである DiGraph を使用して、NumPy 配列を Networkx グラフに変換します。
>>> G1 = NX.DiGraph(G)
>>> len(G1.nodes())
5
>>> type(G1)
<class 'networkx.classes.digraph.DiGraph'>
有向グラフの代わりに、隣接行列から無向グラフを作成できます。適切なコンストラクタGraphを使用するだけです
>>> G2 = NX.Graph(G)
このグラフは、上のグラフとまったく同じように Matplotlib でレンダリングされます。Networkx のdrawメソッドを呼び出してから、Matplotlib のshowを呼び出して画面にレンダリングします。
>>> NX.draw(G2)
>>> MPL.show()