交互式选择全息视图中图形的颜色索引

时间:2018-08-11 10:27:35

标签: python jupyter-notebook networkx holoviews

我已经在 jupyter笔记本中使用 networkx 创建了一个图形。 图的每个节点具有三个不同的属性。布局(spring_layout)并使用 holoviews 可视化图形,我想创建一个小部件,在其中可以选择将哪些属性用作“ color_index”,以便可以快速可视化相对于属性。边缘权重是根据工程特征计算的,而工程特征不是属性的一部分。

以人为图的节点为例,其边缘权重是共同的利益,节点的三个属性可以是“身高”,“程度”和“首选食物”。

我遇到了一个问题,即全息视图仅在“绘图选项”中接受“ color_index”,因此即使在交互式小部件中,也只有一个属性实际用作“ color_index”。

这是我代码的相关部分(我称属性为“标签”):

import holoviews as hv
import networkx as nx

my_graph = nx.star_graph(5)
nx.set_node_attributes(my_graph, name="height", values="Tall")
nx.set_node_attributes(my_graph, name="degree", values="MSc")
nx.set_node_attributes(my_graph, name="preferredfood", values="Pizza")

def get_graph(label):
    plot_opts = dict(color_index = label,
                     edge_color_index = "weight",
                     width = 500,
                     height = 500,
                     xaxis = None, 
                     yaxis = None,
                     show_frame = False,
                     tools = ['hover'])

    style_opts = dict(node_size = 15,
                      cmap = "RdYlBu", 
                      node_alpha = 0.95,
                      edge_cmap = "blues", 
                      edge_line_width = 0.85, 
                      edge_alpha = 1)

    return hv.Graph.from_networkx(my_graph,
                                  layout_function = nx.spring_layout,            
                                  k = 15, 
                                  iterations = 10, 
                                  scale = 2,
                                  random_state = 100).opts(style = style_opts,
                                  plot = plot_opts)

hv.HoloMap({label: get_graph(label) for label in ["height","degree","preferredfood"]}, kdims=["label"])

可能我的方法已关闭,但我不确定如何进行。

编辑:我在上面的代码中模拟了一个my_graph,该代码应立即运行。

0 个答案:

没有答案