Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以使用一个图形渲染引擎(例如fdp)作为节点坐标,使用另一个图形渲染引擎(例如dot)作为边?_Python_Graphviz_Dot - Fatal编程技术网

Python 是否可以使用一个图形渲染引擎(例如fdp)作为节点坐标,使用另一个图形渲染引擎(例如dot)作为边?

Python 是否可以使用一个图形渲染引擎(例如fdp)作为节点坐标,使用另一个图形渲染引擎(例如dot)作为边?,python,graphviz,dot,Python,Graphviz,Dot,我注意到“fdp”正在生成具有非常好的节点位置的图,用于我正在尝试制作的图。但是,节点之间的边是直线,有时与节点重叠 我注意到“点”渲染引擎非常擅长防止边缘重叠,直到它没有选择为止,甚至可以通过仅在方向不相似时对交叉进行优先级排序来区分边缘,以便轻松识别它们 我想使用fdp生成图形的节点坐标,然后使用dot来执行其余的工作。我希望有一个规范的或者至少是现有的解决方案 如果这是不可能的,我也想知道为什么。不能对节点和边分别使用不同的渲染引擎。但你的问题还有一个解决办法: Graphviz中的每个图

我注意到“fdp”正在生成具有非常好的节点位置的图,用于我正在尝试制作的图。但是,节点之间的边是直线,有时与节点重叠

我注意到“点”渲染引擎非常擅长防止边缘重叠,直到它没有选择为止,甚至可以通过仅在方向不相似时对交叉进行优先级排序来区分边缘,以便轻松识别它们

我想使用fdp生成图形的节点坐标,然后使用dot来执行其余的工作。我希望有一个规范的或者至少是现有的解决方案


如果这是不可能的,我也想知道为什么。

不能对节点和边分别使用不同的渲染引擎。但你的问题还有一个解决办法:

Graphviz中的每个图形类型都有一个特殊属性:。您可以在文件中设置
spline=curve
spline=polyline
,以便
fdp
将使用它们,并尝试避免令人讨厌的重叠

graph {
    splines=polyline;
    a -- b;
    b -- c;
    a -- c;
    d -- c;
    e -- c;
    e -- a;
}
另外,许多布局同时使用节点和边信息来计算节点位置和边形状,以便按原样使用。很少有人需要一种节点算法和另一种边算法,因此没有人实现它。也许这是可能的一些肮脏的黑客,但它不应该被使用无论如何