NetworkX グラフ型
DiGraphのついで、他のグラフ型も見ておく:
- Graph
- DiGraph
- MultiGraph
- MultiDiGraph
NetworkX公式に親切な説明があるのだけれど、図がない。図があった方がわかりやすいと思う。
Graph (無向グラフ)
例えば①→②というエッジがあったとして、さらに②→①というエッジを追加すると、②→①は①→②に読み替えられる。
AliceとBobが友人だったとしたら、Alice→BobとBob→Aliceの2個のエッジは不要で、Alice-Bobという1つの無向エッジで十分ということ。
DiGraph (有向グラフ)
例えば①→②というエッジがあったとして、さらに②→①というエッジを追加することができる。
AliceとBobが互いに借金し合っているとしたら、Alice→BobとBob→Aliceという2個のエッジが必要。
MultiGraph (1組のノードに対し複数エッジを持てる無向グラフ)
MultiDiGraphの無向版。
MultiDiGraph (1組のノードに対し複数エッジを持てる有向グラフ)
例えば①→②というエッジがあったとして、さらに①→②というエッジを追加することができる。
BobがAliceから100円借りていて、それを返さずにさらに200円借りたとしたら、同方向の2個のエッジが必要。
ちなみに、NetworkX+MatplotlibでMultiDiGraphを作ろうとしたが、矢印が重なってしまったので、手描きの絵にした。エッジにラベルを表示させるようにすれば、矢印をそれぞれ出してくれるのだろうか?