Graphviz 哪种图形可视化库适用于带有文本的静态节点和边?

Graphviz 哪种图形可视化库适用于带有文本的静态节点和边?,graphviz,graph-visualization,Graphviz,Graph Visualization,我想用Java实现一个图形。我定义了类节点和类边,图形用节点列表表示,对于每个节点,从节点开始的边列表被定义为节点的字段。现在我想使用一些Java库来可视化图形 目前我已经试过了。结果符合我的要求,但边缘和节点放置不好。见下图: 我用它提供的API创建了这个图,比如nodexxx,addLink,通过遍历我的图的节点列表而不是生成原始的点文件文本 创建图形的关键代码如下所示: 对于LiteralNode litNode:literalNodeArrayList {
 MutableNod

我想用Java实现一个图形。我定义了类节点和类边,图形用节点列表表示,对于每个节点,从节点开始的边列表被定义为节点的字段。现在我想使用一些Java库来可视化图形

目前我已经试过了。结果符合我的要求,但边缘和节点放置不好。见下图:

我用它提供的API创建了这个图,比如nodexxx,addLink,通过遍历我的图的节点列表而不是生成原始的点文件文本

创建图形的关键代码如下所示:

对于LiteralNode litNode:literalNodeArrayList {
 MutableNode MutableNode=mutNodeEliteNode.getNodeElement;
 对于边e:litNode.getEdgeList{
 MutableNode endNode=mutNodee.endNode.getNodeElement; mutableNode.addLinktoendNode.portCompass.NORTH.addArrow.VEE;
 }
 mutableNodes.addmutableNode;
 g、 addmutableNode;
 } 它基本上是简单的循环遍历。节点和边将根据不同情况动态更改

我想节点和边调整位置,使图形显示更好。我还尝试使用json文件和d3js来可视化图形,但我发现这些库过于注重显示大量节点及其分布,而我并不需要这些。我喜欢带有一些分层的结构图。所以我想得到一些推荐


我提到了json文件,因为如果没有可用的Java库,我最好尝试一些javascript库,比如d3js,并且只使用Java作为后端工具来生成需要输入的json文件。因此,该建议并不局限于Java。

我觉得这张图不错。“我希望节点和边调整位置以使图形显示更好”是什么意思?

支持所有graphviz属性

节点距离使用ranksep和nodesep设置。 若要强制节点位于同一级别,请添加一个rank=same的子图和应对齐的节点。 下面是一个简单的例子:

Graph g = graph()
                .graphAttr().with(attr("ranksep", .1), attr("nodesep", .1))
                .with(graph().graphAttr().with(Rank.SAME).with(node("a"), node("c")))
                .with(node("a").link("b"), node("b").link("c"));

对不起,我模棱两可。当前,图形太宽,无法显示。我已将RankDir.BOTTOM_设置为_TOP,但无法更改节点和边之间的距离。另一个问题是,是否可以设置图形的某些分层,以便将某些节点放置在某个级别。我所指的这个库的文档只是GitHub页面中的自述部分,还有什么可以参考的吗?通过这些示例,我现在了解了如何使用这些属性。谢谢你的回答和工作!