networkx 画图 带node标签

`#画出feature graph
import networkx as nx
import community
import matplotlib.pyplot as plt
import numpy as np
import random
import scipy.io as scio
import copy

首先读取邻接矩阵,放到矩阵

dataFile = 'ADJ.mat'
data = scio.loadmat(dataFile)['D']
print(data.shape)

data_=data_[0:50,0:50]

根据矩阵构建图

http://www.cppcns.com/jiaoben/python/288043.html

G = nx.Graph()

node labels

node_labvels=['node_label_1','node_label_2','node_label_3','node_label_4','node_label_5',' node_label_6','node_label_7',
'node_label_11','node_label_12','node_label_13','node_label_14','node_label_15',' node_label_16','node_label_17']

for k in range(0,14):
sr=str(k)
lb=node_labvels[k]
G.add_node(sr, desc=lb)

for i in range(len(data)):
for j in range(len(data)):
if (data[i][j] > 0):
G.add_edge(str(i), str(j))

然后画图

nx.draw(G,with_labels=True)

plt.show()

nodes_col=['#B0E0E6','#B0E0E6','#B0E0E6','#B0E0E6','#B0E0E6','#B0E0E6','#B0E0E6',
'#2E8B57', '#2E8B57', '#2E8B57', '#2E8B57', '#2E8B57', '#2E8B57', '#2E8B57']
pos = nx.spring_layout(G)
nx.draw(G, pos)
node_labels = nx.get_node_attributes(G, 'desc')
nx.draw_networkx_labels(G, pos, labels=node_labels)

nx.draw_networkx_nodes(G,pos,node_color=range(14))

nx.draw_networkx_nodes(G,pos,node_color=nodes_col)
nx.draw_networkx_edges(G, pos,edge_color='#7B68EE',width=2)
plt.show()
'

result:

原文地址:https://www.cnblogs.com/Ann21/p/13305682.html