Networkx库使用记录

1 基本的图操作

import network as nx
import matplotlib.pyplot as plt

建立空图

# 无向图
graph = nx.Graph()
# 有向图
graph = nx.DiGraph()

添加节点

# 单个节点
graph.add_node('a')
# 点集合
graph.add_nodes_from(['1','2'])
graph.add_nodes_from(range(1, nodes_count+1))

# 输出所有节点
print(graph.nodes())

添加边

G.add_edge('1','2')
G.add_edges_from([('1','2'),('1','3')])

# 导入所有边的文件
# df = pd.read_csv(data_path, header=None)
# for edge in range(0, len(df)):
#     graph.add_edge(df.loc[edge,0],df.loc[edge,1])
# print('图的边数:', graph.number_of_edges())

画图

def graph_construction(graph):
    # nx.draw(graph)
    # nx.draw_random(graph)
    nx.draw_circular(graph)
    # nx.draw_spectral(graph)
    plt.show()

2 划分子图

 community.community_louvain.best_partition(graph)输出:{节点编号:社区编号}

import community

subgraph = community.community_louvain.best_partition(graph)

with open('{}.csv'.format(saved_file_name),'w',encoding='utf-8',newline='') as f:
    writer = csv.writer(f, dialect='excel')
    write_list = []
    for x in range(1, len(subgraph)):
        # print('第{}个节点属于社区{}'.format(x, subgraph[x]))
        write_list.append(subgraph[x])
    # 按行写入
    writer.writerows(map(lambda i: [i], write_list))

python文件:/GLocalKD-main/graph_construt.py

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值