我有一个通过 python 中的 networkx 构建的网络,我希望使用 cytoscape 对其进行可视化。我希望根据节点所属的类型为节点着色。我已经有一个字典,它将每个节点映射到十六进制格式的颜色(根据其类型)。
我尝试将颜色添加为节点属性,然后将相应的 graphML 文件导入到 cytoscape 中。但随后,应用程序并没有自动获取它们。相反,我必须在样式部分的节点填充颜色选项中手动设置颜色的十六进制值。在下面,您可以看到 cytoscape 没有拾取十六进制颜色值。也许,我做错了什么。
我想要的是当我选择相关列并单击样式部分的节点填充选项中的离散映射时,cytoscape 自动识别颜色。
由于种类较多,手动设置颜色值比较繁琐。另外,稍后我也想对边缘颜色做同样的事情。
感谢任何帮助,谢谢!
使用 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。