Note

This documents the development version of PyGraphviz. Documentation for the current release can be found here.

教程?

該API與NetworkX非常相似。https://networkx.org/documentation/latest/tutorial.html上的NetworkX教程的大部分內容都適用于PyGraphviz。有關主要區別,請參閱http://pygraphviz.github.io/documentation/latest/reference/api_notes.html。

啟動?

導入pygraphviz

>>> import pygraphviz as pgv

?

要生成空的pygraphviz圖,請使用agraph類:

>>> G = pgv.AGraph()

可以使用嚴格的關鍵字和定向關鍵字來控制所需的圖形類型。默認設置是創建一個嚴格的圖形(沒有平行邊或自循環)。要創建具有可能的平行邊和自循環的有向圖,請使用

>>> G = pgv.AGraph(strict=False, directed=True)

您可以指定在初始化時要讀取的點格式文件:

>>> G = pgv.AGraph("Petersen.dot")  

初始化圖形的其他選項是使用字符串,

>>> G = pgv.AGraph("graph {1 - 2}")

使用口述,

>>> d = {"1": {"2": None}, "2": {"1": None, "3": None}, "3": {"2": None}}
>>> A = pgv.AGraph(d)

或者使用指向agraph數據結構的swig指針,

>>> h = A.handle
>>> C = pgv.AGraph(h)

節點和邊?

節點和邊可以一次添加一個

>>> G.add_node("a")  # adds node 'a'
>>> G.add_edge("b", "c")  # adds edge 'b'-'c' (and also nodes 'b', 'c')

或者從列表或容器中。

>>> nodelist = ["f", "g", "h"]
>>> G.add_nodes_from(nodelist)

如果節點不是字符串,將嘗試將其轉換為字符串

>>> G.add_node(1)  # adds node '1'

屬性?

要設置圖形、節點和邊的默認屬性,請使用“圖形”、“節點”和“邊”字典。

>>> G.graph_attr["label"] = "Name of graph"
>>> G.node_attr["shape"] = "circle"
>>> G.edge_attr["color"] = "red"

在初始化圖形時可以設置圖形屬性

>>> G = pgv.AGraph(ranksep="0.1")

添加節點或邊時可以添加屬性,

>>> G.add_node(1, color="red")
>>> G.add_edge("b", "c", color="blue")

或者通過node或edge attr字典,

>>> n = G.get_node(1)
>>> n.attr["shape"] = "box"
>>> e = G.get_edge("b", "c")
>>> e.attr["color"] = "green"

布局和圖紙?

Pygraphviz為圖形的布局和繪制提供了幾種方法。

要以點格式將圖形存儲和打印為python字符串,請使用

>>> s = G.string()

要寫入文件,請使用

>>> G.write("file.dot")

使用graphviz布局算法向節點添加位置

>>> G.layout()  # default to neato
>>> G.layout(prog="dot")  # use dot

將圖形渲染為圖像

>>> G.draw("file.png")  # write previously positioned graph to PNG file
>>> G.draw("file.ps", prog="circo")  # use circo to position, write PS file