Python HoloView中图形颜色索引的交互选择

Python HoloView中图形颜色索引的交互选择,python,jupyter-notebook,networkx,holoviews,Python,Jupyter Notebook,Networkx,Holoviews,我在jupyter笔记本中使用networkx创建了一个图形。 图的每个节点都有三个不同的属性。布局(spring_布局)和使用HoloView可视化图形,我想创建一个小部件,在其中我可以选择哪些属性作为“颜色索引”,以便快速可视化与属性相关的节点群集。边权重是根据不属于属性的工程特征计算的 将人的图形视为节点,其边缘权重是共享的兴趣,节点的三个属性可以是“高度”、“程度”和“首选食物” 我遇到了一个问题,holoviews仅在“打印选项”中接受“颜色索引”,因此即使在交互式小部件中,实际上也只

我在jupyter笔记本中使用networkx创建了一个图形。 图的每个节点都有三个不同的属性。布局(spring_布局)和使用HoloView可视化图形,我想创建一个小部件,在其中我可以选择哪些属性作为“颜色索引”,以便快速可视化与属性相关的节点群集。边权重是根据不属于属性的工程特征计算的

将人的图形视为节点,其边缘权重是共享的兴趣,节点的三个属性可以是“高度”、“程度”和“首选食物”

我遇到了一个问题,holoviews仅在“打印选项”中接受“颜色索引”,因此即使在交互式小部件中,实际上也只有一个属性被用作“颜色索引”

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

将全息视图导入为hv
将networkx导入为nx
my_图=nx.星形图(5)
nx.设置节点属性(我的图,name=“height”,values=“Tall”)
nx.设置节点属性(我的图,name=“degree”,values=“MSc”)
nx.设置节点属性(我的图表,name=“preferredfood”,values=“Pizza”)
def get_图形(标签):
plot\u opts=dict(颜色索引=标签,
边缘颜色索引=“重量”,
宽度=500,
高度=500,
xaxis=无,
yaxis=无,
show_frame=False,
工具=['hover'])
样式选项=dict(节点大小=15,
cmap=“RdYlBu”,
节点α=0.95,
edge_cmap=“蓝色”,
边缘线宽度=0.85,
边缘(α=1)
从网络X返回hv.Graph.(我的图形,
布局\函数=nx.spring\布局,
k=15,
迭代次数=10,
比例=2,
随机状态=100)。选项(样式=样式选项,
绘图=绘图(可选)
HoloMap({label:get_graph(label)for label in[“height”,“degree”,“preferredfood”]},kdims=[“label”])
也许我的方法是关闭的,但我不知道如何继续


编辑:我在上面的代码中模拟了一个my\u图,现在应该可以运行了。

是否可以添加一个假的my\u图以便代码可以运行?它看起来应该像你所拥有的那样工作。@JamesA.Bednar当然,我在代码中添加了一个简单的my_图。我能够重现你的问题,但我首先添加了一些不同于其他节点的节点以使其更清晰:
my_图。节点[1]['height']='Short';my_graph.nodes[2]['degree']='PhD';my_graph.nodes[3]['preferredfood']='Pasta'
对于HoloMap版本,我只看到了
label=“preferredfood”
的节点着色。我还尝试了一个类似的DynamicMap,除了只为
“height”
hv.DynamicMap(get_graph,kdims=['label']).redim.values(label=[“height”,“degree”,“preferredfood]”)着色外,其他行为都很相似。
@JamesA.Bednar感谢您的复制!所以现在我将为每个单独选择的标签创建一个绘图,我想。