Graphviz:如何旋转节点(或子图)?

我想要一个节点(或一个子图,包围一个节点 - 无论哪个可能/更容易)旋转,如下图所示: (请注意,如果旋转“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
的唯一原因),是因为我希望我可以为它分配旋转,但显然我不能 - 因为上面的代码生成了这个图像: 所以我的问题是 - 有没有办法旋转记录节点;如果不是单独的,那么可能作为子图的一部分(或者不同类型的“对象”)? 在此先感谢您的任何建议, 干杯!     
已邀请:
图形对象上应该有一个“rotation”属性(参见http://www.graphviz.org/doc/info/attrs.html#drotation)但它在我的测试中没有做任何事情。并且,它仅适用于根据文档的整个图形(不是簇/子图)。 我猜您首先将子图渲染为postscript,然后将其作为单个占位符节点的自定义形状包含在最终图形中。如果你无法通过“旋转”来完成它的事情,那么postcript有一个简单的方法来应用变换(在这种情况下是旋转),可能就像为生成的代码添加一些坐标定义一样简单。对不起,我现在没时间尝试了。     
如果要旋转基于单个记录的节点,则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。     
对于单个节点,有
orientation
属性。我刚刚用过
node[shape=hexagon, orientation=30]
制作一个顶部有点而不是平顶的六边形。 不幸的是似乎没有'记录'类型:-(     

要回复问题请先登录注册