跳到内容

write_graph() 是一个用于将图导出为外部文件格式的通用函数。用于数据交换的推荐格式是 GraphML 和 GML。

用法

write_graph(
  graph,
  file,
  format = c("edgelist", "pajek", "ncol", "lgl", "graphml", "dimacs", "gml", "dot",
    "leda"),
  ...
)

参数

graph

要导出的图。

file

一个连接或一个字符串,给出要将图写入的文件名。

format

字符串,给出文件格式。目前实现了 pajekgraphmldotgmledgelistlglncolledadimacs。从 igraph 0.4 开始,此参数不区分大小写。

...

其他格式特定的参数,请参见下文。

一个 `NULL`,不可见。

边列表格式

edgelist 格式是一个简单的文本文件,每行一条边,两个从零开始的数字顶点 ID 用空格字符分隔。 请注意,顶点的索引从零开始。 该文件按第一列和第二列排序。 此格式没有其他参数。

NCOL 格式

此格式是一个纯文本边列表,其中顶点按名称而不是数字 ID 引用。 边权重可以有选择地写入。 附加参数

names

一个顶点属性的名称,用于获取顶点名称,或者 NULL 以使用从零开始的数字 ID。

weights

一个边属性的名称,用于获取边权重,或者 NULL 以省略边权重。

Pajek 格式

提供 pajek 格式仅用于与 Pajek 软件互操作。 由于该格式没有正式规范,因此不建议用于一般数据交换或存档。

LGL 格式

.lgl 格式被 Large Graph Layout 可视化软件使用 (https://lgl.sourceforge.net),它可以描述无向的可选加权图。

names

用于顶点名称的顶点属性的名称,如果为 NULL,则使用数字 ID。

weights

用于边权重的边属性的名称,如果为 NULL,则省略权重。

isolates

逻辑值,是否在文件中包含孤立顶点。 默认值为 FALSE。

DIMACS 格式

这是一种面向行的文本文件 (ASCII) 格式。 每行的第一个字符定义行的类型。 如果第一个字符是 c,则该行是注释行,将被忽略。 有一个问题行(文件中的 p),它必须出现在任何节点和弧描述符行之前。 问题行有三个字段,用空格分隔:问题类型(max 或 edge)、顶点数和图中的边数。 在 MAX 问题中,需要正好两个节点识别行 (n),一个用于源顶点,一个用于目标顶点。 这些有两个字段:顶点的 ID 和顶点的类型,可以是 s(=源)或 t(=目标)。 弧线以 a 开头,有三个字段:源顶点、目标顶点和边容量。 在 EDGE 问题中,每个节点可以有一条节点线 (n)。 它指定节点索引和一个整数节点标签。 没有指定显式标签的节点将使用其索引作为标签。 在 EDGE 问题中,每条边都指定为一条边线 (e)。

source

源顶点的数字 ID。

target

目标顶点的数字 ID。

capacity

用于边容量的边属性的名称,如果为 NULL,则使用“capacity”属性(如果存在)。

GML 格式

GML 是一种非常通用的文本格式。

id

要使用的可选数字顶点 ID。

creator

可选字符串,指定文件的创建者。

GraphML 格式

GraphML 是一种基于 XML 的文件格式,用于表示各种类型的图。 当数字属性值为 NaN 时,它将从文件中省略。 此函数假定属性名称和字符串属性值中的非 ASCII 字符采用 UTF-8 编码。 如果不是这种情况,则生成的 XML 文件将无效。 不允许使用控制字符,即字符代码最高为 31(制表符、回车符和换行符除外)。

prefixAttr

逻辑值,是否为属性名称添加前缀,以确保顶点/边/图属性的唯一性。 默认值为 TRUE。

LEDA 格式

此函数将图以 LEDA 格式写入输出流。 请参阅 http://www.algorithmic-solutions.info/leda_guide/graphs/leda_native_graph_fileformat.html 目前对 LEDA 格式的支持非常基础; igraph 仅写入 LEDA 图部分,该部分支持一个选定的顶点和边属性,没有布局信息或视觉属性。

vertex.attr

要包含在文件中的顶点属性的名称。

edge.attr

要包含在文件中的边属性的名称。

DOT 格式

DOT 是广为人知的 GraphViz 软件使用的格式,有关详细信息,请参见 https://graphviz.cn。 DOT 格式的语法可以在这里找到:https://graphviz.cn/doc/info/lang.html 这只是一个初步实现,没有写入可视化信息。 此格式仅用于与 Graphviz 互操作。 不建议用于数据交换或存档。

参考文献

Adai AT, Date SV, Wieland S, Marcotte EM. LGL:使用可视化超大型生物网络算法创建蛋白质功能图谱。 J Mol Biol. 2004 Jun 25;340(1):179-90。

参见

read_graph()

外部格式读取器 graph_from_graphdb(), read_graph()

作者

Gabor Csardi csardi.gabor@gmail.com

示例


g <- make_ring(10)
file <- tempfile(fileext = ".txt")
write_graph(g, file, "edgelist")
if (!interactive()) {
  unlink(file)
}