为什么NetworkX使用存根绘制有向图边缘?

时间:2017-09-22 03:16:50

标签: python matplotlib networkx

功能draw_networkx_edges声明的NetworkX文档:

  

对于有向图,"箭头" (实际上只是较粗的存根)是在头端绘制的......是的,它很难看但是用这种方式用Matplotlib绘制正确的箭头是很棘手的。

上次我查看时,drawing an arrow in matplotlib不是什么好事。有谁知道绘制存根的真实原因是什么?

1 个答案:

答案 0 :(得分:1)

我无法确定,但如果你看一下如何在代码中绘制边缘,它就是从一个节点的位置到另一个节点的位置的线段。节点绘制在边缘的顶部。如果节点很大,它将完全覆盖箭头(除非它是一个巨大的箭头),即使节点不大,它也会覆盖箭头的尖端,这看起来很糟糕。在最后使用较粗的线条使这些问题不那么糟糕。

另一种方法是弄清楚如何使箭头在其指向的节点的边界处结束。当然,绘制边缘时,可能尚未绘制该节点。因此,您需要根据用户决定制作节点的大小来动态更改箭头位置。我认为这可能很难(至少我不知道该怎么做)。