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)[源]#

创建一个不错的图文本表示

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

参数:
graphnx.DiGraph | nx.Graph

要表示的图

pathstring or file or callable or 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,节点链将尽可能垂直绘制。

示例

>>> graph = nx.balanced_tree(r=2, h=2, create_using=nx.DiGraph)
>>> nx.write_network_text(graph)
╙── 0
    ├─╼ 1
    │   ├─╼ 3
    │   └─╼ 4
    └─╼ 2
        ├─╼ 5
        └─╼ 6
>>> # A near tree with one non-tree edge
>>> 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
    │   │   └─╼  ...
    │   └─╼  ...
    └─╼  ...