您好我想和点语言UML序列图,现在我有以下问题,我希望有布局的a,b,c和d在顶部的直线,而是直去的线条如下底部。 我怎样才能做到这一点?
a b c d
| | | |
| | | |
也许我可以实现的是,A,B,c和d与它属于边缘是簇其中I设定簇不同rankdir?
编辑只是发现A,B,c和d,但任何其他解决方案的加入不可见边的解决方案?
您好我想和点语言UML序列图,现在我有以下问题,我希望有布局的a,b,c和d在顶部的直线,而是直去的线条如下底部。 我怎样才能做到这一点?
a b c d
| | | |
| | | |
也许我可以实现的是,A,B,c和d与它属于边缘是簇其中I设定簇不同rankdir?
编辑只是发现A,B,c和d,但任何其他解决方案的加入不可见边的解决方案?
你描述的似乎是什么dot
(默认设置)。
例如,该曲线图:
digraph SO {
a -> a1 -> a2
b -> b1 -> b2
c -> c1 -> c2
d -> d1 -> d2
}
出来是这样的:
如果你有一个更复杂的图形,你可以强制节点是在使用相同的高度rank=same
。 例如:
digraph SO {
{ rank = same
a b c d
}
a -> a1 -> a2
b -> b1 -> b2 -> b3 -> b4
c -> c1
d -> d1 -> d2 -> d3
d2 -> a2
}
出来是这样的:
但是,如果你想要a
, b
, c
和d
是在一个特定的顺序,我认为你将有你这样建议使用不可见边。 该dot
引路的建议是:
边权也发挥了作用,当节点被限制在同一级别。 与这些节点之间的非零权重的边缘旨在横跨秩在samedirection(左到右,或顶部至底部旋转的图中)尽可能。 这个事实可以被利用通过将不可见的边缘(以调节节点排序
style="invis"
在需要的地方)。
你可以尝试mscgen(消息序列图生成器)
一个简单的示意图。将example.msc
msc {
A,B;
--- [label="Start", ID="1"];
A->B [label="signal"];
A<-B [label="signal"];
}
$:mscgen -T PNG -o example.png -i example.msc。
那是产生很好的序列图。
谢谢,SRIKANTH Kyatham
PlantUML使用Graphviz的,这样一个选择是简单地使用PlantUML。 例如,在PlantUML这...
@startuml
Bob -> Alice : hello
@enduml
...呈现为这个...
上图是在渲染的http://plantuml.com/plantuml / ... ,你可以在PlantUML序列图阅读起来的文档中 。 此外,PlantUML也可以从使用命令行 ,并PlantUML 插件可用于许多流行的IDE 。
您还可以使用的Graphviz & NEATO (PDF)。 例如,这有向图...
digraph sequenceDiagramExample {
bobHead [ label="Bob" pos="0,1.5!" shape="record" ];
bobPoint0 [ pos="0,0.75!" shape="point" width="0" ]
bobFoot [ label="Bob" pos="0,0!" shape="record" ];
aliceHead [ label="Alice" pos="1,1.5!" shape="record" ];
alicePoint0 [ pos="1,0.75!" shape="point" width="0" ]
aliceFoot [ label="Alice" pos="1,0!" shape="record" ];
bobHead -> bobPoint0 -> bobFoot [ dir="none" style="dashed" ]
aliceHead -> alicePoint0 -> aliceFoot [ dir="none" style="dashed" ]
bobPoint0 -> alicePoint0 [ label="hello" labelloc="c" style="solid" ]
}
并通过NEATO渲染它(这是安装了Graphviz的)命令行...
...呈现为这个...
要使用NEATO渲染上面的图片,你如下:
$ brew install graphviz # requires Homebrew
) digraph sequenceDiagramExample {...}
代码从上面叫一个文本文件sequenceDiagramExample.dot
$ neato -Tpng sequenceDiagramExample.dot -o sequenceDiagramExample.png
,这将生成一个名为PNG文件sequenceDiagramExample.png
neato
与dot
的可执行文件neato
可能是你想要当你想在元素是如何定位的精细控制使用什么(欢迎评论交替观点!) neato
对与呈现dot
(也包含Graphviz的) dot
(如$ dot -Tpng sequenceDiagramExample.dot -o sequenceDiagramExample.png
)会产生这样...