networkx节点的顺序 - 垂直打印graphviz布局

时间:2014-07-08 19:38:43

标签: python graph nodes graphviz networkx

我有一个我创建的graphviz布局。我还尝试使用不同的绘图样式创建图形,如随机,圆形,壳形,光谱,弹簧。我相信graphviz对我的数据来说是最准确的。我创建了一个包含两列字符串的文件。这些列是边缘。 (每个字符串至少有一个对应的伙伴,这就是我认为最好代表这些数据的GraphViz布局的原因)我从该文件中创建了一个节点唯一字符串列表。然后我绘制了节点并添加了边缘。我的脚本版本可以在这里找到:( networkx - change node size based on list or dictionary value

这是使用graphviz布局的输出(而不是100的大小乘以10,有些数字高达15020,其他小到10):

enter image description here

以下是使用random的输出:

enter image description here

可以得出结论,应该存在的所有边都出现在graphviz示例中吗?说“在”较大的节点之上的较小节点是否连接是否正确?是否可以使其边缘可见?由于图中节点的随机放置,在随机示例中是否有更多边可见,因此边可以有更高的'长度'来遍历?

如果我认为是正确的,并且graphviz是我的数据的最佳绘图选项,因为节点和边缘之间存在许多重叠(并且如果那些节点“在”较大节点之上确实连接了“)我想做的是以“垂直”的方式对情节进行排序。因此,最大边缘位于顶部的最大节点,向下到仅有1个边缘的节点。我试图改变整体的数字大小,这没有使任何更明显的。出于某种原因,我得到了带有情节的原始窗口和带有灰色空白背景的辅助窗口。

所以,我开始认为我的一些假设是正确的。这是我能做到的最大图像:

enter image description here

1 个答案:

答案 0 :(得分:0)

发生的事情是networkx将节点放在边缘的顶部。因此边缘被绘制在节点下面。

我认为最简单的方法仍然是在alpha=0.5命令中设置draw或小于1的其他内容,以使节点部分透明。