Class PlantUML:如何控制相同级别的类的对齐?

Class PlantUML:如何控制相同级别的类的对齐?,class,alignment,diagram,class-diagram,plantuml,Class,Alignment,Diagram,Class Diagram,Plantuml,我最近发现plantuml将同一级别的所有类对齐。然后,每个类都围绕与该列相对应的一条不可见线居中 例如: 在这里,类1、类2、类3和类4具有相同的等级,并围绕该等级的不可见线居中 在这样一个简单的图上,这不是什么问题,但在更复杂的图中会变得有点尴尬 例如: @startuml skinparam线型正交 名称空间1{ 类父类{ 某物 某物 某物 某物 某物 某物 某物 某物 某物 某物 某物 某物 某物 某物 某物 某物 某物 } 父类--类1 父类--类2 父类——第3类 父类——第4类

我最近发现plantuml将同一级别的所有类对齐。然后,每个类都围绕与该列相对应的一条不可见线居中

例如:

在这里,类1、类2、类3和类4具有相同的等级,并围绕该等级的不可见线居中

在这样一个简单的图上,这不是什么问题,但在更复杂的图中会变得有点尴尬

例如:

@startuml
skinparam线型正交
名称空间1{
类父类{
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
}
父类--类1
父类--类2
父类——第3类
父类——第4类
一班{
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
某物
}
二级{
某物
某物
某物
某物
某物
某物
某物
}
三班{
某物
某物
某物
某物
}
四班{
某物
某物
}
}
名称空间2{
OtherParentClass——Class1
OtherParentClass——类2
一班{
某物
}
二级{
某物
}
}
@enduml

在本例中的namespace2中,子类与父类的距离非常远


有没有办法更好地控制这种情况?理想情况下,我希望能够将同一级别的所有类放在顶端,甚至能够重置不可见排名线的位置(这样在命名空间2中,Class1、Class2的位置独立于命名空间1中类的位置)

我找不到一种方法来控制那条看不见的列队线的位置,或者相对于它的对齐方式。 我学到的:排名是graphviz的一个特性,它用于为plantuml进行图形布局。在graphviz中有一些强制布局的方法,但是它们不能在plantuml(,)中使用,但是这些解决方法在plantuml中是不可能的

您可以更改连接线长度,这实际上会将元素置于不同的列组中。这并不是您问题的真正解决方案,但在某些情况下可能是一种变通方法

因此,如果在namespace1中使用
--
,在namespace2中使用
--
,则namespace2中的类将高于namespace1中的类。例如,您还可以对除namespace1::Class1之外的所有类使用短连接器


我是根据

得出这个结论的。你能发布你正在使用的代码并告诉我们你使用什么工具来绘制图表吗?我添加了代码。我使用plantuml命令行工具生成了这些图。