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 │ │ └─╼ ... │ └─╼ ... └─╼ ...