Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为生成的图的节点提供属性_Python_Networkx_Graph Theory - Fatal编程技术网

Python 为生成的图的节点提供属性

Python 为生成的图的节点提供属性,python,networkx,graph-theory,Python,Networkx,Graph Theory,我不熟悉Python和NetworkX,我正在尝试将字典中的属性赋予使用图形生成器创建的网络节点。以下是我的示例代码: g = nx.watts_strogatz_graph(5,4,0.1) name_dict = { 0: "Alice", 1: "Bob", 2: "Carl", 3: "Diana", 4: "Elain", } nx.set_node_attributes(g, name, name_dict) 但是,我得到了以下错误: nx.set_

我不熟悉Python和NetworkX,我正在尝试将字典中的属性赋予使用图形生成器创建的网络节点。以下是我的示例代码:

g = nx.watts_strogatz_graph(5,4,0.1)

name_dict = {
  0: "Alice",
  1: "Bob",
  2: "Carl",
  3: "Diana",
  4: "Elain",
}

nx.set_node_attributes(g, name, name_dict)
但是,我得到了以下错误:

    nx.set_node_attributes(g, name, name_dict)
NameError: name 'name' is not defined
如何定义字典中给定值的属性(“name”)的名称

名称错误:未定义名称“name”

出现此错误是因为没有名为
name
的变量

让我们看看我通过谷歌搜索“networkx设置节点属性”找到的:

设置节点属性(G,值,名称=无)[源]

根据给定值或值字典设置节点属性

警告

参数值和名称的调用顺序在v1.x和v2.x之间切换

参数

G(网络X图)

值(标量值,dict-like)–节点属性应设置为的值。如果值不是字典,则将其视为单个属性值,然后应用于G中的每个节点。这意味着,如果提供可变对象(如列表),则对该对象的更新将反映在每个节点的节点属性中。属性名将为name

如果值是dict或dict的dict,则节点应将其设置为属性值或用于更新节点属性的属性键/值对dict

名称(字符串(可选,默认值=无))–如果值是标量,则要设置的节点属性的名称

这告诉我们dictionary必须是要传入的第二个参数,而不是第三个参数

它还告诉我们,
name
参数是一个可选字符串

综上所述,您可以通过以下方式修复代码:

nx.set_node_attributes(g, name_dict)
现在将运行此操作,但它将省略属性的名称。如果希望属性具有名称
“name”
,则可以传递字符串作为第三个参数:

nx.set_node_attributes(g, name_dict, 'name')
TLDR;您需要修正参数的顺序,并将
'name'
用引号括起来,使其成为字符串而不是变量