如何在networkx图形绘制中显示循环

时间:2014-03-10 22:05:58

标签: python graph matplotlib networkx

我使用NetworkX构建了一个简单的图形,如下所示:

import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()
G.add_edges_from([(0,1), (0,2), (1,1), (1,2)])
nx.draw_networkx(G)
plt.show() 

当我绘制这张图时,我得到了这张图片:

enter image description here

图形也有一条边(1,1),但它没有在图像上显示这条边。我怎样才能画出这个优势呢?我认为这是不使用箭头的结果。这种可视化非常糟糕。如何使用箭头代替粗线?

1 个答案:

答案 0 :(得分:5)

Graphviz可以很好地绘制箭头和自循环。 (在Matplotlib中实现非常重要)。 这是一个例子:

import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()
G.add_edges_from(\[(0,1), (0,2), (1,1), (1,2)\])
nx.write_dot(G,'graph.dot')

# then run dot -Tpng graph.dot > graph.png

enter image description here