我想使用 igraph R 来可视化我用 igraph C 创建的网络图。
到目前为止,我已使用以下命令将图形保存在 C 中:
FILE *ofile;
ofile=fopen("AdjacencyMatrix.csv", "w");
igraph_write_graph_pajek(&g, ofile);
fclose(ofile);
然后用这个从 R 读取文件:
g<- read.graph("AdjacencyMatrix.csv", format = c("pajek"))
效果很好。
现在我想向边缘添加属性,以便区分两组边缘。为了做到这一点,我正在使用 igraph C 教程“示例 12.2”中的示例。文件 example/simple/cattributes2.c' 并在末尾添加上述行 将图表保存在 csv 文件中。现在出现两个问题:
a) 如果我使用 pajek 命令保存文件,保存的文件不包含任何属性,而只包含连接
b) 如果我使用 'igraph_write_graph_graphml(&g, ofile,/prefixattr=/1);'相反,我在尝试阅读时收到以下错误消息 igraph R 中的文件:
g<- read.graph("AdjacencyMatrix.csv", format = c("graphml"))
警告消息: 在 .Call("R_igraph_read_graph_graphml", file, as.numeric(index), 中: 在foreign-graphml.c:443:无法添加顶点ID,已经有一个“id”顶点属性
有人建议我如何解决这两个问题吗?
最佳答案
Re a):Pajek 格式不支持任意属性,仅支持少数专用属性;请参阅 igraph_read_graph_pajek
的文档了解更多详情。
Re b):您收到的消息不是错误消息,而只是警告。请随意忽略它 - 图表可能加载得很好。
关于c - igraph R 和 C,写入和读取带有属性的邻接矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33174790/