9

この画像に示すように、ノード(またはノードを囲むサブグラフ-可能な/簡単な方)を回転させようとしています:

必要な回転ノード効果

「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)は、回転を割り当てることができることを望んでいたためですが、明らかにできません-上記のコードがこの画像を生成するため:

gvizは実際に回転します

だから私の質問は-レコードノードをローテーションする方法はありますか?それ自体ではない場合、おそらくサブグラフ(または別の種類の「オブジェクト」)の一部としてですか?

よろしくお願いします、
乾杯!

4

3 に答える 3

7

単一のレコードベースのノードをローテーションする場合は、 rankdirが機能します。グラフに試してみましたが、

digraph plugnoid {
    rankdir=LR;
    node[shape=Mrecord];
    plugnoid [label="swarm| {<load0> onLoad|<plugin0> Plugin|<quit0> onQuit}|{<run0>run|<rehash0>rehash}"];}

ここに画像の説明を入力してください

ランクディレクトリには、 LRRL、およびTB(デフォルト)の値を指定できます。ランクディレクトリをTBに変更すると、出力が変更されました。

ここに画像の説明を入力してください

望ましい結果を得るために、グラフでそれらを試してみることをお勧めします。サブグラフを使用して別のrankdirを設定すると、結果がそれほど良くないことを経験しました。詳細については、 http://www.graphviz.org/doc/info/shapes.html#recordを参照してください。

于 2014-07-16T07:03:39.813 に答える
5

単一ノードの場合、orientation属性があります。使ったばかり

node[shape=hexagon, orientation=30]

平らな上部ではなく、上部に点がある六角形を作成します。

残念ながら、「レコード」タイプでは機能しないようです:-(

于 2017-08-01T07:00:54.893 に答える
4

グラフオブジェクトには「rotation」属性があるはずですが(http://www.graphviz.org/doc/info/attrs.html#drotationを参照)、私のテストでは何もしませんでした。また、ドキュメントによると、グラフ全体(クラスター/サブグラフではない)にのみ適用されます。最初にサブグラフをポストスクリプトにレンダリングしてから、単一のプレースホルダーノードのカスタムシェイプとして最終的なグラフに含めます。「回転」を実行できない場合は、postscriptに変換(この場合は回転)を適用する簡単な方法があります。おそらく、生成されたコードの前に座標定義を付けるのと同じくらい簡単です。手を振ってすみませんが、今は試す時間がありません。

于 2011-04-15T14:42:14.940 に答える