我在python2.7中使用了networkx1.9,并决定更新到最新的1.10版本。当使用二分图生成器函数configuration_model时,我发现我以前使用的是:
import networkx as nx
from networkx.algorithms import bipartite
import networkx.algorithms.bipartite as bipartite
aseq=[1 2 1]
bseq=[2 1 1]
G =bipartite_configuration_model(aseq,bseq, create_using=None, seed=None)新版本:
G =configuration_model(aseq, bseq, create_using=None, seed=None)
configuration_model() got multiple values for keyword argument 'create_using'不再起作用了。知道create_using=应该是什么吗?我读了源文件,看不见需要什么!
发布于 2015-11-03 16:32:05
我不确定不同版本之间的区别,但是对旧版本的小改动解决了这个问题。我对您的代码所做的更改是:
给出错误的aseq和bseq的定义:
aseq=[1, 2, 1] # with commas between degree sequences
bseq=[2, 1, 1]调用configuration_model函数
G = bipartite.configuration_model(aseq,bseq, create_using=None, seed=None) # you had an underscore instead of a '.'然后使用一个简单的color_map来区分属于每个部分的节点,如下所示:
color_map = []
for n in G.nodes():
if G.node[n]['bipartite'] == 0:
color_map.append('blue')
else: color_map.append('green')绘制所产生的图表:

至于create_using参数,您可以检查文档。它说,您可以使用它来确定返回图形的类型。默认情况下,它是一个具有平行边的多图。
发布于 2015-11-04 01:31:09
bipartite_configuration_model和configuration_model是不同的命令。新代码调用configuration_model,其中只有一个节点分区。
将aseq解释为度分布。然后,它将第二个参数解释为create_using变量(如果第二个参数是可选的,则可以在函数调用中提供第二个参数,或者在函数调用(更多细节)中使用关键字)。所以它把它看作是create_using=bseq。然后显式地为create_using传递一个附加值,因此它有多个值。显然,你不是有意这样做的,因此出现了错误。
我相信阿卜杜拉的回答告诉你你到底想做什么。
补充:我怀疑你真的想同时打这两次电话。
from networkx.algorithms import bipartite
import networkx.algorithms.bipartite as bipartitehttps://stackoverflow.com/questions/33503532
复制相似问题