我使用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()
当我绘制这张图时,我得到了这张图片:
图形也有一条边(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