为图中的节点列表分配两种不同的颜色

时间:2019-04-05 10:25:26

标签: python networkx graph-theory

我想显示一个图表,其中包含我所拥有的每组节点的两种不同颜色。

我尝试定义一个函数,将每个节点的颜色分配给列表中的节点,但是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' )

理想情况下,这应该绘制一个显示两种不同颜色的图形。但是它只显示蓝色。

1 个答案:

答案 0 :(得分:0)

例如,您似乎正在为node_color变量分配一个字符串,而不是列表。由于nodecolor()函数返回单个字符串,因此draw_networkx接收到一种用于绘制图形的颜色。

如果您查看文档here,则可以看到可以向node_color的{​​{1}}参数输入字符串序列,尽管序列的长度应等于列表的长度节点。

尽管我对您所使用的特定库没有经验,但我相信对函数draw_networkx进行如下修改是可行的。

nodecolor()