如何反转 python anytree graphviz 输出中的箭头方向?
How do I reverse the direction of arrows in my python anytree graphviz output?
我正在构建树,这些树旨在使用 python 中的 anytree 包来表示从树叶到树根的流。我有以下代码。
from anytree import Node
from anytree.exporter import DotExporter
A = Node('A')
B = Node('B', parent = A)
C = Node('C', parent = A)
DotExporter(A).to_picture('example.png')
它会生成以下图像。
我想修改此图像,使箭头指向相反的方向。
我知道在 graphviz 中添加 [dir=back]
到边缘定义线会给我想要的结果。通过运行以下代码:
for line in DotExporter(A):
print(line)
我得到输出:
digraph tree {
"A";
"B";
"C";
"A" -> "B";
"A" -> "C";
}
但是我如何修改 anytree 接口的 DotExporter
的输出以将 [dir=back]
添加到边缘定义线并反转箭头的方向?
要修改 DotExporter
为 Dot
定义的边缘属性,您需要像这样更改 DotExporter
的 edgeattrfunc
属性。
from anytree import Node
from anytree.exporter import DotExporter
A = Node('A')
B = Node('B', parent = A)
C = Node('C', parent = A)
DotExporter(A, edgeattrfunc = lambda node, child: "dir=back").to_picture('example.png')
查看输出,您现在得到:
for line in DotExporter(A, edgeattrfunc = lambda node, child: "dir=back"):
print(line)
digraph tree {
"A";
"B";
"C";
"A" -> "B" [dir=back];
"A" -> "C" [dir=back];
}
生成以下图像。
我正在构建树,这些树旨在使用 python 中的 anytree 包来表示从树叶到树根的流。我有以下代码。
from anytree import Node
from anytree.exporter import DotExporter
A = Node('A')
B = Node('B', parent = A)
C = Node('C', parent = A)
DotExporter(A).to_picture('example.png')
它会生成以下图像。
我想修改此图像,使箭头指向相反的方向。
我知道在 graphviz 中添加 [dir=back]
到边缘定义线会给我想要的结果。通过运行以下代码:
for line in DotExporter(A):
print(line)
我得到输出:
digraph tree {
"A";
"B";
"C";
"A" -> "B";
"A" -> "C";
}
但是我如何修改 anytree 接口的 DotExporter
的输出以将 [dir=back]
添加到边缘定义线并反转箭头的方向?
要修改 DotExporter
为 Dot
定义的边缘属性,您需要像这样更改 DotExporter
的 edgeattrfunc
属性。
from anytree import Node
from anytree.exporter import DotExporter
A = Node('A')
B = Node('B', parent = A)
C = Node('C', parent = A)
DotExporter(A, edgeattrfunc = lambda node, child: "dir=back").to_picture('example.png')
查看输出,您现在得到:
for line in DotExporter(A, edgeattrfunc = lambda node, child: "dir=back"):
print(line)
digraph tree {
"A";
"B";
"C";
"A" -> "B" [dir=back];
"A" -> "C" [dir=back];
}
生成以下图像。