python - 如何根据networkx中的节点绘制特定边缘的颜色?
问题描述
我是 Python 新手。我有一个 Louvain 聚类图,我希望图的边缘颜色跟随其节点的颜色。这是我的代码:
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import matplotlib.colors as mcolors
import numpy as np
partition_louvain = community.best_partition(G)
size = float(len(set(partition_louvain.values())))
pos = nx.spring_layout(G)
count = 0.
communities_louvain = []
cmap=mymap
#cmap = cm.get_cmap("BlueRedGreen")
for com in set(partition_louvain.values()):
count = count + 1.
list_nodes = [nodes for nodes in partition_louvain.keys()
if partition_louvain[nodes] == com]
communities_louvain.append(list_nodes)
nx.draw_networkx_nodes(G, pos, list_nodes, node_size=20,connectionstyle='arc3',
node_color=cmap(count / size))
#'''
cmap2 = cm.get_cmap("jet")
#norm = plt.Normalize(pos[e[0]].min(), pos[e[0]].max())
ax = plt.gca()
for e in G.edges:
norm = plt.Normalize(pos[e[0]].min(), pos[e[0]].max())
cmap2 = cm.get_cmap("jet")
ax.annotate("",
xy=pos[e[0]], xycoords='data',
xytext=pos[e[1]], textcoords='data',
arrowprops=dict(arrowstyle="->", color=cmap2(norm(pos[e[0]])),
shrinkA=5, shrinkB=5,
patchA=None, patchB=None,
connectionstyle="arc3,rad=rrr".replace('rrr',str(0.3*e[2])
),
),
)
plt.show()
我只能通过将颜色参数更改为类似的东西来将箭头绘制成单一颜色
color='blue'.
解决方案
推荐阅读
- apache-kafka - 使用 kafka 进行事件溯源
- sql - 从sql server中的某些字符串中提取数字
- maven - Surefire 不会触发集成测试
- c# - 如何处理 IEqualityComparer 中的空值?
- android - 来自 exoplayer 的 TimelineQueueNavigator 给出了错误的索引
- vba - 将自定义模具用作 Visio 形状的 VBA 填充图案
- jira - 根据状态过滤故事,但包括其所有子任务
- python - 打印到打印机 python turtle 图形图像
- azure-logic-apps - 本地 SQL Server 到 Azure
- magento - Magento 1 上的 SagePay