Python Bokeh/Holoviews网络图中的Networkx节点颜色

Python Bokeh/Holoviews网络图中的Networkx节点颜色,python,bokeh,networkx,holoviews,Python,Bokeh,Networkx,Holoviews,我正在使用Networkx构建一个网络图,并希望在holoviews和bokeh中进行绘制。似乎有多种方法可以注释和修改网络节点(图示符圆),但使用图的holoviews实例化,我无法确定如何将节点属性数据传递给渲染器,以便根据特定属性为节点着色 当我只使用bokeh时,它可以工作,但是在HoloView中绘制networkx图形对象不允许我传递任何类型的信息来为节点着色,而不是单一颜色 N = hv.Graph.from_networkx(G, nx.layout.fruchterman_re

我正在使用Networkx构建一个网络图,并希望在holoviews和bokeh中进行绘制。似乎有多种方法可以注释和修改网络节点(图示符圆),但使用图的holoviews实例化,我无法确定如何将节点属性数据传递给渲染器,以便根据特定属性为节点着色

当我只使用bokeh时,它可以工作,但是在HoloView中绘制networkx图形对象不允许我传递任何类型的信息来为节点着色,而不是单一颜色

N = hv.Graph.from_networkx(G, nx.layout.fruchterman_reingold_layout,k=1)
                          .opts(tools=['hover','tap'],
                                node_size=20,node_color=G.node[i]['color'])


N.relabel('USCG Structural Condition Network')
N.opts(inspection_policy='edges',bgcolor='lightblue',
       show_legend=True,node_hover_fill_color='red')

我原以为这会查看节点属性“color”,并将其用作节点填充颜色的基础,但我得到的是随机颜色,例如firebrick或紫色。

cmap
选项缺失
node_color
参数采用您在networkx图形中定义的任何
vdim

比如说,

G = nx.karate_club_graph()
node_type = np.array(['type1']*17 + ['type2']*17).reshape(34)

for i, _ in enumerate(G.nodes()):
    G.nodes[i]['type'] = node_type[i]
给予

N = hv.Graph.from_networkx(G, nx.layout.fruchterman_reingold_layout,k=1).opts(tools=['hover','tap'],
                                                                          node_size=10,
                                                                          node_color='type',
                                                                          cmap = ['blue','orange'] 

                                                                         )