为图中的节点列表分配两种不同的颜色
Assigning two separate colours for a list of nodes in a graph
我想显示一个图表,其中包含我拥有的每组节点的两种不同颜色。
我试图定义一个函数来将每个节点颜色分配给列表中的一个节点,但是 python 似乎无法识别我的列表之一,因此最终打印了我的所有节点相同的颜色。我觉得我缺少一些非常基本的东西,但我看不到它。
编辑:Nodelist1 本质上是一个节点序列,表示两个节点之间的路径。 Nodelist1 中的所有数字都在 Graph.nodes()
中
Nodelist1=[1,2,7,9,13]
def nodecolor():
for n in Graph.nodes():
if n in list(NodeList1):
node_color='red'
else:
node_color='blue'
return node_color
nx.draw_networkx(Graph, node_color=nodecolor(), edge_color='red' )
理想情况下,这应该绘制一个显示两种不同颜色的图形。但是它只显示蓝色。
您似乎将单个字符串分配给 node_color
变量,而不是例如列表。由于 nodecolor()
函数 returns 单个字符串,draw_networkx
接收单一颜色来绘制图形。
如果您查看文档 here,您可以看到您可以将字符串序列提供给 draw_networkx
的 node_color
参数,但序列的长度应等于节点列表。
虽然我对您正在使用的特定库没有经验,但我相信按如下所示对您的函数 nodecolor()
进行简单修改就可以了。
def nodecolor():
node_colors = []
for n in Graph.nodes():
if n in list(NodeList1):
node_colors.append('red')
else:
node_colors.append('blue')
return node_colors
我想显示一个图表,其中包含我拥有的每组节点的两种不同颜色。
我试图定义一个函数来将每个节点颜色分配给列表中的一个节点,但是 python 似乎无法识别我的列表之一,因此最终打印了我的所有节点相同的颜色。我觉得我缺少一些非常基本的东西,但我看不到它。
编辑:Nodelist1 本质上是一个节点序列,表示两个节点之间的路径。 Nodelist1 中的所有数字都在 Graph.nodes()
中Nodelist1=[1,2,7,9,13]
def nodecolor():
for n in Graph.nodes():
if n in list(NodeList1):
node_color='red'
else:
node_color='blue'
return node_color
nx.draw_networkx(Graph, node_color=nodecolor(), edge_color='red' )
理想情况下,这应该绘制一个显示两种不同颜色的图形。但是它只显示蓝色。
您似乎将单个字符串分配给 node_color
变量,而不是例如列表。由于 nodecolor()
函数 returns 单个字符串,draw_networkx
接收单一颜色来绘制图形。
如果您查看文档 here,您可以看到您可以将字符串序列提供给 draw_networkx
的 node_color
参数,但序列的长度应等于节点列表。
虽然我对您正在使用的特定库没有经验,但我相信按如下所示对您的函数 nodecolor()
进行简单修改就可以了。
def nodecolor():
node_colors = []
for n in Graph.nodes():
if n in list(NodeList1):
node_colors.append('red')
else:
node_colors.append('blue')
return node_colors