我正在尝试使用ego_graph
绘制一些集中于一组随机选择的节点的网络。如果我没有设置distance
参数,那么它将在thisRadius
步骤内正确返回图形;但是,当我指定距离时,结果是完全错误的,没有任何意义。
如何正确使用
distance
的{{1}}功能?
在我的情况下,我的边上有各种权重,但现在要使用的权重是以分钟为单位的遍历时间,称为nx.ego_graph
。假设我要在起始节点的30分钟内找到所有节点的子图。我期望
timeWeight
将返回此值,但是它将返回距离30分钟远的节点。不过,半径确实会产生一些影响,因为如果将半径减小到nodeCenteredSubgraph = nx.ego_graph(thisNetwork, egoID, radius=30, distance='timeWeight')
,则会得到较小(但仍然很大)的子图……当然,结点数也超过1分钟内可以达到的结点数。实际上,在这种情况下,我本应该得到自我。
如果我设置radius=1
或radius=0.1
或更小,我总是会得到相同的结果,尽管比以前小很多,但它仍然返回相当大的图形……远远超出了不到一分钟(没事)。
意识到radius=0.01
以ego_graph
为基础,我直接使用
single_source_dijkstra
,它返回一堆权重为0.0到10.0的节点(所有整数,如果实际上使用的是distances,paths = nx.single_source_dijkstra(thisNetwork, egoID, target=None, cutoff=10, weight='timeWeight')
,则不是整数),并且与timeWeight值无关。
从文档看来,我做得对,并且找不到使用timeWeight
来使用distance参数的示例,因此希望有人可以告诉我我做错了什么。< / p>