write_network_text#

write_network_text(graph, path=None, with_labels=True, sources=None, max_depth=None, ascii_only=False, end='\n', vertical_chains=False)[source]#

创建图的文本表示

通过深度优先遍历图并记录每个遇到的唯一节点来实现。非树边写在每个节点的右侧,并通过省略号指示与非树边的连接。此表示在输入图是森林时效果最佳,但任何图都可以表示。

Parameters:
graphnx.DiGraph | nx.Graph

要表示的图

pathstring 或 file 或 callable 或 None

数据输出的文件名或文件句柄。 如果是函数,则将为每行生成的数据调用它。 如果是 None,则默认为 “sys.stdout.write”

with_labelsbool 或 str

如果为 True,将使用节点的 “label” 属性进行显示(如果存在),否则使用节点值本身。如果给定字符串,则将使用该属性名称而不是 “label”。默认为 True。

sourcesList

指定从哪些节点开始遍历。注意:无法从这些源到达的节点可能不会显示。如果未指定,将使用最小节点集以到达所有其他节点。

max_depthint 或 None

遍历的最大深度。默认为 None。

ascii_onlyBoolean

如果为 True,仅使用 ASCII 字符构建可视化

endstring

行尾字符

vertical_chainsBoolean

如果为 True,尽可能垂直绘制节点链。

Examples

>>> graph = nx.balanced_tree(r=2, h=2, create_using=nx.DiGraph)
>>> nx.write_network_text(graph)
╙── 0
    ├─╼ 1
    │   ├─╼ 3
    │   └─╼ 4
    └─╼ 2
        ├─╼ 5
        └─╼ 6
>>> # 一个接近树的图,带有一个非树边
>>> graph.add_edge(5, 1)
>>> nx.write_network_text(graph)
╙── 0
    ├─╼ 1 ╾ 5
    │   ├─╼ 3
    │   └─╼ 4
    └─╼ 2
        ├─╼ 5
        │   └─╼  ...
        └─╼ 6
>>> graph = nx.cycle_graph(5)
>>> nx.write_network_text(graph)
╙── 0
    ├── 1
    │   └── 2
    │       └── 3
    │           └── 4 ─ 0
    └──  ...
>>> graph = nx.cycle_graph(5, nx.DiGraph)
>>> nx.write_network_text(graph, vertical_chains=True)
╙── 0 ╾ 4

    1

    2

    3

    4
    └─╼  ...
>>> nx.write_network_text(graph, vertical_chains=True, ascii_only=True)
+-- 0 <- 4
    !
    1
    !
    2
    !
    3
    !
    4
    L->  ...
>>> graph = nx.generators.barbell_graph(4, 2)
>>> nx.write_network_text(graph, vertical_chains=False)
╙── 4
    ├── 5
    │   └── 6
    │       ├── 7
    │       │   ├── 8 ─ 6
    │       │   │   └── 9 ─ 6, 7
    │       │   └──  ...
    │       └──  ...
    └── 3
        ├── 0
        │   ├── 1 ─ 3
        │   │   └── 2 ─ 0, 3
        │   └──  ...
        └──  ...
>>> nx.write_network_text(graph, vertical_chains=True)
╙── 4
    ├── 5
    │   │
    │   6
    │   ├── 7
    │   │   ├── 8 ─ 6
    │   │   │   │
    │   │   │   9 ─ 6, 7
    │   │   └──  ...
    │   └──  ...
    └── 3
        ├── 0
        │   ├── 1 ─ 3
        │   │   │
        │   │   2 ─ 0, 3
        │   └──  ...
        └──  ...
>>> graph = nx.complete_graph(5, create_using=nx.Graph)
>>> nx.write_network_text(graph)
╙── 0
    ├── 1
    │   ├── 2 ─ 0
    │   │   ├── 3 ─ 0, 1
    │   │   │   └── 4 ─ 0, 1, 2
    │   │   └──  ...
    │   └──  ...
    └──  ...
>>> graph = nx.complete_graph(3, create_using=nx.DiGraph)
>>> nx.write_network_text(graph)
╙── 0 ╾ 1, 2
    ├─╼ 1 ╾ 2
    │   ├─╼ 2 ╾ 0
    │   │   └─╼  ...
    │   └─╼  ...
    └─╼  ...