我一直只使用Networkx库通过Python构建图形。我的程序输出一个带有nx.drawing.nx_pydot.to_pydot()
的.dot文件,并使用点引擎通过调用点对象上的write_png(" output.png")来使用Graphviz绘制该文件。
我的点文件可能如下所示:
strict digraph {
a;
b;
c;
a -> b;
a -> c;
}
我想将点文件添加如下:
strict digraph {
a;
b;
c;
a -> b;
a -> c;
{rank=same; a b};
}
因为在前面的情况下,b和c是在a下面绘制的,而在后面的情况下c是在a和b下面绘制的,它们处于同一水平。
我在文档中找不到如何进行这种简单的更改。我理解这与声明子图并设置其属性相同,但我正在努力的部分是设置该子图的rank属性。
构建完图形后,以下代码处理输出。
DG = myGraphBuildFunction(dictOfEdges)
p = nx.drawing.nx_pydot.to_pydot(DG)
p.write_png('example.png')
nx.drawing.nx_pydot.write_dot(DG, "Output.dot")
print("Graph Generated")
如何从这里轻松设置某些节点的等级?我想避免pygraphviz库,但我对graphviz库很好。 Pygraphviz won't easily install on Windows via pip install
我需要保持这个程序"易于使用和维护",因为我不是唯一可能使用它的人。