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

问题描述 投票:2回答:1

我注意到'fdp'生成的图形具有非常好的节点位置,用于我想要制作的图形。但是,节点之间的边缘是直线,有时会重叠节点。

我注意到'dot'渲染引擎非常善于保持边缘不重叠,直到它无法选择,甚至通过仅在方向不相似时优先选择十字形来使边缘清晰,因此可以很容易地识别它们。

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

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

python graphviz dot
1个回答
0
投票

您不能单独为节点和边使用不同的渲染引擎。但你的问题仍然有一个问题:

Graphviz中的每种图表类型都有一个特殊属性:splines。您可以在文件中设置splines=curvedsplines=polyline,以便fdp使用它们并尝试避免恼人的重叠。

graph {
    splines=polyline;
    a -- b;
    b -- c;
    a -- c;
    d -- c;
    e -- c;
    e -- a;
}

附:许多布局使用节点和边缘信息来计算节点位置和边缘形状,因此它们按原样使用。当某人需要一个节点算法而另一个算法需要边缘时,这是非常罕见的情况,所以没有人实现它。也许这可能是一些脏兮兮的黑客,但不管怎样都不应该使用它。

© www.soinside.com 2019 - 2024. All rights reserved.