如何将颜色映射导入至cytoscape?

问题描述 投票:0回答:1

我有一个通过 python 中的 networkx 构建的网络,我希望使用 cytoscape 对其进行可视化。我希望根据节点所属的类型为节点着色。我已经有一个字典,它将每个节点映射到十六进制格式的颜色(根据其类型)。

我尝试将颜色添加为节点属性,然后将相应的 graphML 文件导入到 cytoscape 中。但随后,应用程序并没有自动获取它们。相反,我必须在样式部分的节点填充颜色选项中手动设置颜色的十六进制值。在下面,您可以看到 cytoscape 没有拾取十六进制颜色值。也许,我做错了什么。

我想要的是当我选择相关列并单击样式部分的节点填充选项中的离散映射时,cytoscape 自动识别颜色。

由于种类较多,手动设置颜色值比较繁琐。另外,稍后我也想对边缘颜色做同样的事情。

感谢任何帮助,谢谢!

networkx graph-visualization cytoscape
1个回答
0
投票

使用 NetworkX 中的 write_graphml 函数将图形导出到 GraphML 文件。

import networkx as nx

# ... (your network creation code)

# Create node type dictionary
node_type_colors = {"A": "#FF0000", "B": "#00FF00", "C": "#0000FF"}

# Add node type as an attribute
for node, data in G.nodes(data=True):
    data["type"] = node_type_colors[node]

# Export to GraphML
nx.write_graphml(G, "network.graphml")

将导出的 GraphML 文件导入 Cytoscape。

  1. 打开 Cytoscape 中的“样式”面板。
  2. 选择面板底部的“节点”选项卡。
  3. 在“选择映射器:”下拉菜单中,选择“填充颜色”。
  4. 在“列”下拉菜单中,选择用于节点类型的属性名称(例如上例中的“类型”)。
  5. 在“映射类型”下拉菜单中,选择“离散映射”。
© www.soinside.com 2019 - 2024. All rights reserved.