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