Python中如何将igraph运行结果导出为CSV?如何为igraph图形添加标签?
igraph常见使用问题解决方案
问题1:将igraph运行结果导出为CSV格式文件
igraph的计算结果通常保存在顶点属性(g.vs)和边属性(g.es)中,你可以将对应属性转为Pandas DataFrame后直接导出为CSV,根据导出内容不同可以参考以下示例:
导出顶点属性CSV
# 提取所有顶点的属性转为DataFrame后导出 vertex_df = pd.DataFrame([v.attributes() for v in g.vs]) vertex_df.to_csv("igraph_vertices.csv", index=False)
导出边属性+起止节点CSV
edge_list = [] for edge in g.es: # 提取边的起止顶点名称 source_node = g.vs[edge.source]["name"] target_node = g.vs[edge.target]["name"] # 合并边本身的属性 edge_info = {"source": source_node, "target": target_node, **edge.attributes()} edge_list.append(edge_info) edge_df = pd.DataFrame(edge_list) edge_df.to_csv("igraph_edges.csv", index=False)
问题2:为igraph生成的图形添加标签
你可以在ig.plot()方法中传入标签相关参数,分别添加顶点标签和边标签,修改后的完整绘图代码如下:
import igraph as ig import pandas as pd g=ig.Graph.TupleList(df.itertuples(index=False),directed=True) ig.plot( g, target='graph.png', vertex_size=10, bbox=(0, 0, 500, 500), # 顶点标签配置,默认使用TupleList自动生成的顶点name属性 vertex_label = g.vs["name"], vertex_label_size = 7, # 标签字体大小 vertex_label_color = "#222222", # 标签颜色 vertex_label_dist = 1, # 标签与顶点的距离,避免和顶点重叠 # 如需要添加边标签可取消以下注释,按需替换为你的边属性 # edge_label = g.es["weight"], # edge_label_size = 6 )
内容的提问来源于stack exchange,提问作者user12217822
相关产品推荐
相关产品推荐

