我用networkx在jupyter笔记本中创建了一个图表。 图的每个节点有三个不同的属性。布局(spring_Layout)和用holoviews可视化图形,我想创建一个小部件,在那里我可以选择哪些属性作为“颜色索引”,这样我就可以快速地可视化与属性相关的节点聚类。边权重是根据不属于属性的工程特征计算的。在
把人的图想象成一个节点,其边缘权重是共享的兴趣,节点的三个属性可以是“高度”、“度数”和“首选食物”。在
我遇到了这样一个问题:holoviews只接受“plot options”中的“color_index”,所以即使在交互式小部件中,实际上也只有一个属性被用作“color_index”。在
下面是我代码的相关部分(我称属性为“label”):
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\u图,现在应该运行了。在
目前没有回答
相关问题 更多 >
编程相关推荐