我试图让一个节点(或一个子图,包围一个节点 - 无论哪个可能/更容易)旋转,如下图所示:
(请注意,如果旋转“B”标签对我来说无关紧要 - 只有记录中的'verti- *'文本[或者更确切地说,整个记录节点]如图所示旋转)
然而,我最接近的是以下dot
代码:
digraph graphname {
node [fontname=Monospace, fontsize=14];
subgraph clusterMasterBox {
node [shape=record];
l1 [label = "{ horiz-1 \r| \
horiz-2 \r| \
horiz-3 \r| \
horiz-4 \r} \
"];
subgraph clusterSubRotateBox {
rotate=90;
node [shape=record,rotate=90];
l2 [label = "{ verti-1 \r| \
verti-2 \r| \
verti-3 \r| \
verti-4 \r} \
"];
label="B";
}
label="A"
}
}
我拥有subgraph clusterSubRotateBox
的唯一原因(以及它嵌套在clusterMasterBox
内的唯一原因)是因为我希望我可以为它分配旋转,但显然我不能 - 如上面的代码生成了这个图像:
所以我的问题是 - 有没有办法旋转记录节点;如果不是单独的,那么可能作为子图的一部分(或者另一种“对象”)?
提前感谢任何建议,
干杯!
答案 0 :(得分:4)
如果要旋转单个基于记录的节点,则 rankdir 将起作用。我为我的图表试了一下,
digraph plugnoid {
rankdir=LR;
node[shape=Mrecord];
plugnoid [label="swarm| {<load0> onLoad|<plugin0> Plugin|<quit0> onQuit}|{<run0>run|<rehash0>rehash}"];}
rankdir可以具有值 LR , RL 和 TB (默认值)。当我将rankdir更改为TB时,输出发生了变化,
您可能需要在图表上试用它们以获得所需的结果。我经历过,当我使用子图并设置不同的rankdir时,结果不是那么好。有关详细信息,请参阅http://www.graphviz.org/doc/info/shapes.html#record。
答案 1 :(得分:3)
应该有&#34;旋转&#34;图形对象上的属性(请参阅http://www.graphviz.org/doc/info/attrs.html#drotation)但它在我的测试中没有做任何事情。并且,它仅适用于根据文档的整个图形(不是簇/子图)。 我猜您首先将子图渲染为postscript,然后将其作为单个占位符节点的自定义形状包含在最终图形中。如果你不能得到&#34;轮换&#34;要做到这一点,肯定后记有一个简单的方法来应用变换(在这种情况下是旋转),可能就像为生成的代码添加一些坐标定义前缀一样简单。对不起,我现在没有时间尝试。
答案 2 :(得分:2)
对于单个节点,有orientation
属性。我刚用过
node[shape=hexagon, orientation=30]
制作一个顶部有点而不是平顶的六边形。
不幸的是,似乎没有对“记录”类型起作用: - (