python - 如何在 nxviz Arcplot 中设置边缘颜色?
问题描述
我在 NetworkX 中有一个 DiGraph() 并且想为 CircosPlot 中的每个边缘设置边缘颜色。我正在使用以下语法(这只是一个示例):
import networkx as nx
G = nx.DiGraph()
G.add_edge(1,2,color='r',weight=2)
G.add_edge(2,3,color='b',weight=4)
pos = nx.circular_layout(G)
edges = G.edges()
colors = [G[u][v]['color'] for u,v in edges]
weights = [G[u][v]['weight'] for u,v in edges]
a = CircosPlot(G, figsize=(15,15), edge_color=colors)
a.draw()
plt.show()
这会导致以下错误: TypeError: unhashable type: 'list'
任何想法如何让边缘颜色在 CircosPlot 上工作?(请注意,使用 nx.draw 而不是 CircosPlot 的相同代码有效)
解决方案
我冒昧地在他的图中添加了更多节点,因此图中的节点CircosPlot
有点小(大节点使得更难看到边缘)。
我还增加了边缘权重,以便更容易看到颜色。
G = nx.DiGraph()
G.add_node(1)
G.add_node(2)
G.add_node(3)
G.add_node(4)
G.add_node(5)
G.add_node(6)
G.add_edge(1,2,color='r',weight=6)
G.add_edge(2,3,color='b',weight=6)
G.add_edge(3,1,color='b',weight=6)
a = nxv.CircosPlot(G, node_labels='gender',
edge_color='color', edge_width='weight')
a.draw()
您必须为图形属性而不是列表指定属性名称。API 类似于 seaborn 包。
推荐阅读
- c# - 如何在 .NET 中使用来自 VB6 dll 的方法?
- android - 从 Play 商店更新 android 应用程序后 Firebase Permisson 被拒绝
- powershell - 导入 CSV 的 Powershell 脚本,将信息与 Active Directory 进行比较,按 OU 对其进行排序,然后将信息导出到 csv
- node.js - Nginx 拒绝连接 AWS EC2
- java - 合并两个 XSSFWorkbook
- excel - 选择数据透视表行和列
- python-3.x - 带有 isalpha() 的波浪号 TRUE 返回 -2 而不是 FALSE
- c++ - 将错误修复应用于 Open CV 库
- c# - 检查数组中的项目位置是偶数还是奇数(C#)
- javascript - 在画布上制作动画时淡出画布上传递的帧的最有效方法是什么?