属性
以下の表は、様々なGraphvizツールで使用される属性について説明しています。この表には、属性名、属性を使用するグラフコンポーネント(ノード、エッジなど)、属性の種類(その種類に許容される値を表す文字列)を示しています。該当する場合は、属性のデフォルト値、数値属性の最小許容設定、および属性の使用に関する特定の制限も示しています。
属性名は、大文字と小文字が区別されます。特に記載がない限り、属性値についても通常は大文字と小文字が区別されます。
すべてのGraphviz属性は、名前と値のペアで指定されます。したがって、ノード`abc`の`color`を設定するには、次のようにします。
digraph {
abc [color = red]
}
同様に、エッジ`abc -> def`の矢印のスタイルを設定するには、次のようにします。
digraph {
abc -> def [arrowhead = diamond]
}
属性の設定に関する詳細は、DOT言語の説明を参照してください。
現在、ほとんどのデバイス非依存単位はインチまたはポイントのいずれかで、1インチを72ポイントとします。
注記: dir
やarrowtail
などの属性は、無向グラフでDOTを使用する場合、エッジのヘッドとテールが無意味になるため、あいまいになります。慣例として、無向エッジが初めて現れるとき、DOTパーサーは左側のノードをテールノード、右側のノードをヘッドノードとして割り当てます。たとえば、エッジ`A -- B`は、テール`A`とヘッド`B`を持ちます。このようなエッジを一貫して処理するのはユーザーの責任です。エッジが後で、次の形式で表示される場合
graph {
B -- A [taillabel = "tail"]
}
図面は、テールラベルをノード`A`に付けます。このような属性が必要な場合の混乱を避けるために、ユーザーは有向グラフを使用することをお勧めします。グラフを無向グラフのように表示することが重要であれば、dir
、arrowtail
、またはarrowhead
属性を使用して行うことができます。
これらのツールは、`int`型と`double`型に対して標準的なC表現を受け入れます。`bool`型の場合、TRUE値は`true`または`yes`(大文字と小文字は区別されません)およびゼロ以外の整数で表され、FALSE値は`false`または`no`(大文字と小文字は区別されません)およびゼロで表されます。さらに、`arrowType`、`color`、`point`、`rankdir`などの様々な特殊な型があります。これらの型の許容値は最後に記載されています。
「使用コンポーネント」列は、属性が適用されるグラフコンポーネントを示しています。
「備考」欄では、「書き込み専用」の注釈は、属性が出力に使用され、レイアウトプログラムによって使用または読み取られないことを示しています。
名称 | 使用コンポーネント | 型 | デフォルト | 最小値 | 説明、備考 |
---|---|---|---|---|---|
_background |
グラフ | xdot | <なし> |
xdot 形式の文字列で、任意の背景を指定します。 |
|
area |
ノード、クラスタ | double | 1.0 |
>0 |
ノードまたは空のクラスタの優先領域を示します。patchworkのみ。 |
arrowhead |
エッジ | arrowType | normal |
エッジのヘッドノードの矢印のスタイル。 | |
arrowsize |
エッジ | double | 1.0 |
0.0 |
矢印の倍率。 |
arrowtail |
エッジ | arrowType | normal |
エッジのテールノードの矢印のスタイル。 | |
bb |
クラスタ、グラフ | rect | 図面の境界ボックス(ポイント単位)。書き込み専用。 | ||
beautify |
グラフ | bool | false |
sfdpでルートノードの周りに葉ノードを均一に円状に描くかどうか。sfdpのみ。 | |
bgcolor |
グラフ、クラスタ | color、colorList | <なし> |
キャンバスの背景色。 | |
center |
グラフ | bool | false |
図面を出力キャンバスの中央に配置するかどうか。 | |
charset |
グラフ | string | "UTF-8" |
文字列入力をテキストラベルとして解釈する際に使用する文字エンコーディング。 | |
class |
エッジ、ノード、クラスタ、グラフ | string | "" |
ノード、エッジ、グラフ、またはクラスタのSVG要素に添付するクラス名。svgのみ。 | |
cluster |
クラスタ、サブグラフ | bool | false |
サブグラフがクラスタかどうか。 | |
clusterrank |
グラフ | clusterMode | local |
クラスタの処理に使用されるモード。dotのみ。 | |
color |
エッジ、ノード、クラスタ | color、colorList | black |
グラフィックの基本描画色(テキストではありません)。 | |
colorscheme |
エッジ、ノード、クラスタ、グラフ | string | "" |
カラー・スキーム・ネームスペース:色の名前を解釈するためのコンテキスト。 | |
comment |
エッジ、ノード、グラフ | string | "" |
コメントが出力に挿入されます。 | |
compound |
グラフ | bool | false |
trueの場合、クラスタ間のエッジを許可します。 dot のみ。 | |
concentrate |
グラフ | bool | false |
trueの場合、エッジコンセントレータを使用します。 | |
constraint |
エッジ | bool | true |
falseの場合、エッジはノードのランク付けに使用されません。 dot のみ。 | |
Damping |
グラフ | double | 0.99 |
0.0 |
力の動きを減衰させる係数です。 neato のみ。 |
decorate |
エッジ | bool | false |
エッジラベルを線でエッジに接続するかどうか。 | |
defaultdist |
グラフ | double | 1+(平均長さ)*sqrt(|V|) |
epsilon |
別々の連結成分内のノード間の距離です。 neato のみ。 |
dim |
グラフ | int | 2 |
2 |
レイアウトに使用される次元の数を設定します。 neato、fdp、sfdp のみ。 |
dimen |
グラフ | int | 2 |
2 |
レンダリングに使用される次元の数を設定します。 neato、fdp、sfdp のみ。 |
dir |
エッジ | dirType | forward (有向)none (無向) |
矢印を描くためのエッジの種類。 | |
diredgeconstraints |
グラフ | 文字列、ブール値 | false |
ほとんどのエッジを下向きに制約するかどうか。 neato のみ。 | |
distortion |
ノード | double | 0.0 |
-100.0 |
shape=polygon の歪み係数。 |
dpi |
グラフ | double | 96.0 0.0 |
ディスプレイデバイス上の1インチあたりのピクセル数の予想値を指定します。ビットマップ出力、svg のみ。 | |
edgehref |
エッジ | escString | "" |
edgeURL の同義語です。マップ、svg のみ。 |
|
edgetarget |
エッジ | escString | <なし> |
edgeURL リンクに使用するブラウザウィンドウです。マップ、svg のみ。 |
|
edgetooltip |
エッジ | escString | "" |
エッジのラベル以外の部分に添付されたツールチップ注釈です。 cmap、svg のみ。 | |
edgeURL |
エッジ | escString | "" |
エッジのラベル以外の部分のリンクです。マップ、svg のみ。 | |
epsilon |
グラフ | double | .0001 * ノード数 (モード == KK).0001 (モード == major).01 (モード == sgd) |
終了条件です。 neato のみ。 | |
esep |
グラフ | addDouble、addPoint | +3 |
スプラインエッジルーティングのためにポリゴンの周囲に使用されるマージンです。 neato、fdp、sfdp、osage、circo、twopi のみ。 | |
fillcolor |
ノード、エッジ、クラスタ | color、colorList | lightgrey (ノード)black (クラスタ) |
ノードまたはクラスタの背景を塗りつぶすために使用される色。 | |
fixedsize |
ノード | ブール値、文字列 | false |
ノードのサイズを選択するために、指定された幅と高さの属性を使用するかどうか(ノードの内容に合わせてサイズ調整するのではなく)。 | |
fontcolor |
エッジ、ノード、グラフ、クラスタ | color | black |
テキストに使用される色。 | |
fontname |
エッジ、ノード、グラフ、クラスタ | string | "Times-Roman" |
テキストに使用されるフォント。 | |
fontnames |
グラフ | string | "" |
SVG出力において基本的なフォント名をどのように表現するかをユーザーが制御できるようにします。 svg のみ。 | |
fontpath |
グラフ | string | <システム依存> |
libgd がビットマップフォントを検索するために使用するディレクトリリスト。 | |
fontsize |
エッジ、ノード、グラフ、クラスタ | double | 14.0 |
1.0 |
テキストに使用されるフォントサイズ(ポイント単位)。 in points |
forcelabels |
グラフ | bool | true |
xlabels をすべて配置する(重なっている場合でも)。 |
|
gradientangle |
ノード、クラスタ、グラフ | int | 0 |
0 |
グラデーション塗りつぶしを使用している場合、塗りつぶしの角度を決定します。 |
group |
ノード | string | "" |
ノードのグループの名前で、交差を避けてエッジをバンドルするためです。 dot のみ。 | |
head_lp |
エッジ | point | エッジのヘッドラベルの中心位置です。書き込み専用。 | ||
headclip |
エッジ | bool | true |
trueの場合、エッジのヘッドはヘッドノードの境界にクリップされます。 | |
headhref |
エッジ | escString | "" |
headURL の同義語です。マップ、svg のみ。 |
|
headlabel |
エッジ | lblString | "" |
エッジのヘッド付近に配置されるテキストラベル。 | |
headport |
エッジ | portPos | center |
エッジのヘッドをヘッドノードのどこに接続するかを示します。 | |
headtarget |
エッジ | escString | <なし> |
headURL リンクに使用するブラウザウィンドウです。マップ、svg のみ。 |
|
headtooltip |
エッジ | escString | "" |
エッジのヘッドに添付されたツールチップ注釈です。 cmap、svg のみ。 | |
headURL |
エッジ | escString | "" |
定義されている場合、headURL はエッジのヘッドラベルの一部として出力されます。マップ、svg のみ。 |
|
height |
ノード | double | 0.5 |
0.02 |
ノードの高さ(インチ単位)。 |
href |
グラフ、クラスタ、ノード、エッジ | escString | "" |
URL の同義語です。マップ、postscript、svg のみ。 |
|
id |
グラフ、クラスタ、ノード、エッジ | escString | "" |
グラフオブジェクトの識別子です。マップ、postscript、svg のみ。 | |
image |
ノード | string | "" |
ノード内に表示される画像を含むファイルの名前を指定します。 | |
imagepath |
グラフ | string | "" |
画像ファイルを探すディレクトリのリスト。 | |
imagepos |
ノード | string | "mc" |
画像がその包含ノード内でどのように配置されるかを制御します。 | |
imagescale |
ノード | ブール値、文字列 | false |
画像がその包含ノードをどのように塗りつぶすかを制御します。 | |
inputscale |
グラフ | double | <なし> |
長さ単位間の変換を行うために、入力位置をスケーリングします。 neato、fdp のみ。 | |
K |
グラフ、クラスタ | double | 0.3 |
0 |
仮想物理モデルで使用されるバネ定数です。 fdp、sfdp のみ。 |
label |
エッジ、ノード、グラフ、クラスタ | lblString | "\N" (ノード)"" (それ以外) |
オブジェクトに添付されたテキストラベル。 | |
label_scheme |
グラフ | int | 0 |
0 |
名前が|edgelabel|* という形式のノードを、エッジラベルを表す特別なノードとして扱うかどうか。 sfdp のみ。 |
labelangle |
エッジ | double | -25.0 |
-180.0 |
極座標におけるヘッドとテールのエッジラベルの角度(度単位)。 |
labeldistance |
エッジ | double | 1.0 |
0.0 |
headlabel / taillabel をヘッド / テールノードから離す距離のスケール係数。 |
labelfloat |
エッジ | bool | false |
trueの場合、エッジラベルの位置の制約を緩めることができます。 | |
labelfontcolor |
エッジ | color | black |
headlabel とtaillabel に使用される色。 |
|
labelfontname |
エッジ | string | "Times-Roman" |
headlabel とtaillabel のフォント。 |
|
labelfontsize |
エッジ | double | 14.0 |
1.0 |
headlabel とtaillabel のフォントサイズ。 |
labelhref |
エッジ | escString | "" |
labelURL の同義語です。マップ、svg のみ。 |
|
labeljust |
グラフ、クラスタ | string | "c" |
グラフとクラスタのラベルの揃え。 | |
labelloc |
ノード、グラフ、クラスタ | string | "t" (クラスタ)"b" (ルートグラフ)"c" (ノード) |
ノード、ルートグラフ、クラスタのラベルの垂直方向の位置。 | |
labeltarget |
エッジ | escString | <なし> |
labelURL リンクを開くブラウザウィンドウです。マップ、svg のみ。 |
|
labeltooltip |
エッジ | escString | "" |
エッジのラベルに添付されたツールチップ注釈です。 cmap、svg のみ。 | |
labelURL |
エッジ | escString | "" |
定義されている場合、labelURL はエッジのラベルに使用されるリンクです。マップ、svg のみ。 |
|
landscape |
グラフ | bool | false |
trueの場合、グラフは横向きモードでレンダリングされます。 | |
layer |
エッジ、ノード、クラスタ | layerRange | "" |
ノード、エッジ、またはクラスタが存在するレイヤーを指定します。 | |
layerlistsep |
グラフ | string | "," |
layerRange 型の属性を範囲のリストに分割するために使用されるセパレータ文字。 |
|
layers |
グラフ | layerList | "" |
グラフに添付された、線形に順序付けられたレイヤー名のリスト。 | |
layerselect |
グラフ | layerRange | "" |
出力するレイヤーのリストを選択します。 | |
layersep |
グラフ | string | ":\t " |
layers 属性をレイヤー名のリストに分割するためのセパレータ文字。 |
|
layout |
グラフ | string | "" |
使用するレイアウトエンジン。 | |
len |
エッジ | double | 1.0 (neato)0.3 (fdp) |
優先エッジの長さ(インチ単位)。 neato、fdp のみ。 | |
levels |
グラフ | int | INT_MAX |
0.0 |
多段スキームで許可されるレベルの数です。 sfdp のみ。 |
levelsgap |
グラフ | double | 0.0 |
neatoレベル制約の厳しさです。 neato のみ。 | |
lhead |
エッジ | string | "" |
エッジの論理的なヘッドです。 dot のみ。 | |
lheight |
グラフ、クラスタ | double | グラフまたはクラスタラベルの高さ(インチ単位)。書き込み専用。 | ||
linelength |
グラフ | int | 128 |
60 |
テキスト出力において、文字列が次の行にオーバーフローする長さ。 |
lp |
エッジ、グラフ、クラスタ | point | ラベルの中心位置です。書き込み専用。 | ||
ltail |
エッジ | string | "" |
エッジの論理的なテールです。 dot のみ。 | |
lwidth |
グラフ、クラスタ | double | グラフまたはクラスタラベルの幅(インチ単位)。書き込み専用。 | ||
margin |
ノード、クラスタ、グラフ | 倍精度浮動小数点数、点 | <デバイス依存> |
グラフの場合、キャンバスのxとyのマージンをインチ単位で設定します。 | |
maxiter |
グラフ | int | 100 * ノード数 (モード == KK)200 (モード == major)30 (モード == sgd)600 (fdp) |
使用される反復回数を設定します。 neato、fdp のみ。 | |
mclimit |
グラフ | double | 1.0 |
mincross(mc)エッジ交差最小化パラメータのスケール係数です。 dot のみ。 | |
mindist |
グラフ | double | 1.0 |
0.0 |
すべてのノード間の最小距離を指定します。 circo のみ。 |
minlen |
エッジ | int | 1 |
0 |
最小エッジの長さ(ヘッドとテールのランクの差)。 dot のみ。 |
mode |
グラフ | string | major |
レイアウトを最適化するための手法です。 neato のみ。 | |
model |
グラフ | string | shortpath |
入力グラフの距離行列を計算する方法を指定します。 neato のみ。 | |
newrank |
グラフ | bool | false |
クラスタを無視して、単一のグローバルランキングを使用するかどうか。 dot のみ。 | |
nodesep |
グラフ | double | 0.25 |
0.02 |
dot では、nodesep は同じランクにある2つの隣接ノード間の最小スペースをインチ単位で指定します。 |
nojustify |
グラフ、クラスタ、ノード、エッジ | bool | false |
複数行のテキストを前のテキスト行に対して揃えるかどうか(コンテナの辺に対して揃えるのではなく)。 | |
normalize |
グラフ | 倍精度浮動小数点数、ブール値 | false |
最終レイアウトの座標を正規化します。 neato、fdp、sfdp、twopi、circo のみ。 | |
notranslate |
グラフ | bool | false |
レイアウトを原点に移動しないかどうか。 neato のみ。 | |
nslimit |
グラフ | double | ネットワークシンプレックスアプリケーションで使用される反復回数を設定します。 dot のみ。 | ||
nslimit1 |
グラフ | double | ネットワークシンプレックスアプリケーションで使用される反復回数を設定します。 dot のみ。 | ||
oneblock |
グラフ | bool | false |
circoグラフを1つの円周上に描くかどうか。 circo のみ。 | |
ordering |
グラフ、ノード | string | "" |
ノードエッジの左右の順序を制約します。 dot のみ。 | |
orientation |
ノード、グラフ | 倍精度浮動小数点数、文字列 | 0.0 "" |
-360.0 |
ノードシェイプの回転角度、またはグラフの向き。 |
outputorder |
グラフ | outputMode | breadthfirst |
ノードとエッジを描画する順序を指定します。 | |
overlap |
グラフ | 文字列、ブール値 | true |
ノードの重複を削除するかどうか、およびその方法を決定します。 fdp、neato、sfdp、circo、twopi のみ。 | |
overlap_scaling |
グラフ | double | -4 |
-1e+10 |
ノードの重複を減らすために、レイアウトを係数でスケーリングします。 prism、neato、sfdp、fdp、circo、twopi のみ。 |
overlap_shrink |
グラフ | bool | true |
重複除去アルゴリズムが、レイアウトのサイズを縮小するために圧縮パスを実行するかどうか。 prism のみ。 | |
pack |
グラフ | ブール値、整数 | false |
グラフの各連結成分を個別にレイアウトし、次にグラフをまとめて配置するかどうか。 | |
packmode |
グラフ | packMode | node |
連結成分をどのように配置するか。 | |
pad |
グラフ | 倍精度浮動小数点数、点 | 0.0555 (4ポイント) |
グラフを描画するために必要な最小面積の周囲に描画領域を拡張するインチ数。 | |
page |
グラフ | 倍精度浮動小数点数、点 | 出力ページの幅と高さ(インチ単位)。 | ||
pagedir |
グラフ | pagedir | BL |
ページが出力される順序。 | |
pencolor |
クラスタ | color | black |
クラスタの周囲のバウンディングボックスを描画するために使用される色。 | |
penwidth |
クラスタ、ノード、エッジ | double | 1.0 |
0.0 |
線と曲線を引くために使用されるペンの幅(ポイント単位)を指定します。 |
peripheries |
ノード、クラスタ | int | <シェイプのデフォルト> (ノード)1 (クラスタ) |
0 |
多角形とクラスタ境界で使用される周辺部の数を設定します。 |
pin |
ノード | bool | false |
ノードを指定された入力位置に保持します。 neato、fdpのみ。 | |
pos |
エッジ、ノード | point、splineType | ノードの位置、またはスプライン制御点。 neato、fdpのみ。 | ||
quadtree |
グラフ | quadType、bool | normal |
使用するQuadtreeスキーム。 sfdpのみ。 | |
quantum |
グラフ | double | 0.0 |
0.0 |
quantum > 0.0 の場合、ノードラベルの寸法は量子(quantum)の整数倍に丸められます。 |
rank |
サブグラフ | rankType | サブグラフ内のノードに対するランク制約。 dotのみ。 | ||
rankdir |
グラフ | rankdir | TB |
グラフレイアウトの方向を設定します。 dotのみ。 | |
ranksep |
グラフ | double、doubleList | 0.5 (dot)1.0 (twopi) |
0.02 |
ランク間の分離を指定します。 dot、twopiのみ。 |
ratio |
グラフ | 倍精度浮動小数点数、文字列 | 描画のアスペクト比(描画高さ/描画幅)を設定します。 | ||
rects |
ノード | rect | レコードのフィールドの矩形(ポイント単位)。書き込み専用。 | ||
regular |
ノード | bool | false |
真の場合、多角形を正多角形にします。 | |
remincross |
グラフ | bool | true |
複数のクラスタがある場合、エッジ交差最小化を2回目に実行するかどうか。 dotのみ。 | |
repulsiveforce |
グラフ | double | 1.0 |
0.0 |
拡張Fruchterman-Reingoldで使用される反発力の強度。 sfdpのみ。 |
resolution |
グラフ | double | 96.0 0.0 |
dpi の同義語。ビットマップ出力、svgのみ。 |
|
root |
グラフ、ノード | 文字列、ブール値 | <none> (グラフ)false (ノード) |
レイアウトの中心として使用するノードを指定します。 twopi、circoのみ。 | |
rotate |
グラフ | int | 0 |
rotate=90 の場合、描画方向を横向きに設定します。 |
|
rotation |
グラフ | double | 0 |
最終的なレイアウトを反時計回りに指定された角度だけ回転させます。 sfdpのみ。 | |
samehead |
エッジ | string | "" |
同じヘッドと同一のsamehead 値を持つエッジは、ヘッドの同じ点に向けられます。 dotのみ。 |
|
sametail |
エッジ | string | "" |
同じテールと同一のsametail 値を持つエッジは、テールの同じ点に向けられます。 dotのみ。 |
|
samplepoints |
ノード | int | 8 (出力)20 (オーバーラップとイメージマップ) |
円形/楕円形ノードに使用されるポイント数を指定します。 | |
scale |
グラフ | 倍精度浮動小数点数、点 | 初期レイアウト後に、指定された係数でレイアウトを拡大縮小します。 neato、twopiのみ。 | ||
searchsize |
グラフ | int | 30 |
ネットワークシンプレックス中に、最小カット値のエッジを探す際に、負のカット値を持つエッジの最大探索数。 dotのみ。 | |
sep |
グラフ | addDouble、addPoint | +4 |
ノードのオーバーラップを除去する際に、ノードの周囲に残すマージン。 fdp、neato、sfdp、osage、circo、twopiのみ。 | |
shape |
ノード | shape | 楕円 |
ノードの形状を設定します。 | |
shapefile |
ノード | string | "" |
ユーザー提供のノードコンテンツを含むファイル。 | |
showboxes |
エッジ、ノード、グラフ | int | 0 |
0 |
デバッグのためのガイドボックスを出力します。 dotのみ。 |
sides |
ノード | int | 4 |
0 |
shape=polygon の場合の辺の数。 |
size |
グラフ | 倍精度浮動小数点数、点 | 描画の最大幅と高さ(インチ単位)。 | ||
skew |
ノード | double | 0.0 |
-100.0 |
shape=polygon のスキュー係数。 |
smoothing |
グラフ | smoothType | "なし" |
ノードの不均一な分布を平滑化するために使用される後処理ステップを指定します。 sfdpのみ。 | |
sortv |
グラフ、クラスタ、ノード | int | 0 |
0 |
packmode パッキングの順序付けのためのグラフコンポーネントのソート順。 |
splines |
グラフ | ブール値、文字列 | エッジがどのように、そしてどのように表現されるかを制御します。 | ||
start |
グラフ | startType | "" |
ノードの初期レイアウトを決定するために使用されるパラメータ。 neato、fdp、sfdpのみ。 | |
style |
エッジ、ノード、クラスタ、グラフ | style | "" |
グラフのコンポーネントのスタイル情報を設定します。 | |
stylesheet |
グラフ | string | "" |
SVG出力で使用されるXMLスタイルシートを指定するURLまたはパス名。 svgのみ。 | |
tail_lp |
エッジ | point | エッジのテールのラベルの位置(ポイント単位)。書き込み専用。 | ||
tailclip |
エッジ | bool | true |
真の場合、エッジのテールはテールのノードの境界にクリップされます。 | |
tailhref |
エッジ | escString | "" |
tailURL の同義語。マップ、svgのみ。 |
|
taillabel |
エッジ | lblString | "" |
エッジのテール付近に配置されるテキストラベル。 | |
tailport |
エッジ | portPos | center |
エッジのテールをテールのノードのどこに接続するかを示します。 | |
tailtarget |
エッジ | escString | <なし> |
tailURL リンクに使用するブラウザウィンドウ。マップ、svgのみ。 |
|
tailtooltip |
エッジ | escString | "" |
エッジのテールに添付されたツールチップ注釈。 cmap、svgのみ。 | |
tailURL |
エッジ | escString | "" |
定義されている場合、tailURL はエッジのテールのラベルの一部として出力されます。マップ、svgのみ。 |
|
target |
エッジ、ノード、グラフ、クラスタ | escString、string | <なし> |
オブジェクトにURL がある場合、この属性はURLに使用するブラウザのウィンドウを決定します。マップ、svgのみ。 |
|
TBbalance |
グラフ | string | '' |
浮動(ルーズ)ノードを移動するランク。 dotのみ。 | |
tooltip |
ノード、エッジ、クラスタ、グラフ | escString | "" |
ノード、エッジ、クラスタ、またはグラフに添付されたツールチップ(マウスホバーテキスト)。 cmap、svgのみ。 | |
truecolor |
グラフ | bool | 内部ビットマップレンダリングがトゥルーカラーカラーモデルに依存するか、使用するかどうか。ビットマップ出力のみ。 | ||
URL |
エッジ、ノード、グラフ、クラスタ | escString | <なし> |
デバイス依存出力に組み込まれたハイパーリンク。マップ、postscript、svgのみ。 | |
vertices |
ノード | pointList | ノードの多角形の頂点の座標をインチ単位で設定します。書き込み専用。 | ||
viewport |
グラフ | viewPort | "" |
最終描画のクリッピングウィンドウ。 | |
voro_margin |
グラフ | double | 0.05 |
0.0 |
Voronoi手法の調整マージン。 neato、fdp、sfdp、twopi、circoのみ。 |
weight |
エッジ | int、double | 1 |
0(dot,twopi) 1(neato,fdp) |
エッジの重み。 |
width |
ノード | double | 0.75 |
0.01 |
ノードの幅(インチ単位)。 |
xdotversion |
グラフ | string | 出力で使用されるxdot のバージョンを決定します。 xdotのみ。 |
||
xlabel |
エッジ、ノード | lblString | "" |
ノードまたはエッジの外部ラベル。 | |
xlp |
ノード、エッジ | point | 外部ラベルの位置(ポイント単位)。書き込み専用。 | ||
z |
ノード | double | 0.0 |
-MAXFLOAT -1000 |
3Dレイアウトと表示のZ座標値。 |
_background
xdot
形式の文字列で、任意の背景を指定します。型: xdot、デフォルト: <none>
レンダリング時に、キャンバスは最初にbgcolor
属性で説明されているように塗りつぶされます。
次に、_background
が定義されている場合、文字列で記述されているグラフィック操作がキャンバス上で実行されます。
詳細はxdot
形式ページを参照してください。
digraph G {
_background="c 7 -#ff0000 p 4 4 4 36 4 36 36 4 36";
a -> b
}
- グラフ
Graphvizコードベースで"_background"
を検索
area
型: double、デフォルト: 1.0
、最小値: >0
graph {
layout="patchwork"
node [style=filled]
"5c" [area= 5 fillcolor=silver]
"10c" [area= 10 fillcolor=silver]
"20c" [area= 20 fillcolor=silver]
"50c" [area= 50 fillcolor=silver]
"$1" [area=100 fillcolor=gold]
"$2" [area=200 fillcolor=gold]
}
- ノード
- クラスタ
注:patchworkのみ。
arrowhead
型: arrowType、デフォルト: normal
これは、dir
属性がforward
またはboth
の場合にのみ表示されます。
制限を参照してください。
関連項目
有効な対象- エッジ
arrowsize
型: double、デフォルト: 1.0
、最小値: 0.0
digraph {
quiver -> "0.5" [arrowsize=0.5]
quiver -> "1"
quiver -> "2" [arrowsize=2]
quiver -> "3" [arrowsize=3]
}
- エッジ
arrowtail
型: arrowType、デフォルト: normal
これは、dir
属性がback
またはboth
の場合にのみ表示されます。
制限を参照してください。
関連項目
有効な対象- エッジ
bb
型: rect
有効な対象- クラスタ
- グラフ
注:書き込み専用。
beautify
型: bool、デフォルト: false
リーフノードをルートノードの周りの円周上に均一に描画しようと試みるかどうか。
Graphviz 8.0.1より前では、Issue 2283の影響を受けます:必要なセクターよりも1つ少ないセクターをレンダリングし、最初と最後のノードがオーバーラップします。
例
digraph G {
layout="sfdp"
beautify=true
N0 -> {N1; N2; N3; N4; N5; N6}
}
digraph G {
layout="sfdp"
beautify=false
N0 -> {N1; N2; N3; N4; N5; N6}
}
- グラフ
注:sfdpのみ。
bgcolor
型: color | colorList、デフォルト: <none>
ルートグラフに付加されると、この色はキャンバス全体の背景色として使用されます。
クラスタ属性の場合、クラスタの初期背景色として使用されます。クラスタに塗りつぶされたstyle
がある場合、クラスタのfillcolor
が背景色の上に重ねられます。
colorList
の値の場合、グラデーション塗りつぶしを使用します。デフォルトでは線形塗りつぶしですが、style=radial
を設定すると、放射状塗りつぶしになります。2色のみ使用されます。2番目の色(コロンの後)がない場合、デフォルトの色が使用されます。gradientangle
属性を使用してグラデーション角度を設定することもできます。
PostScriptなどの特定の出力形式では、bgcolor
が明示的に設定されていない限り、ルートグラフの塗りつぶしは行われません。
ただし、ビットマップ形式ではビットを何かで初期化する必要があるため、キャンバスはデフォルトで白で塗りつぶされます。これは、ビットマップ出力が他のドキュメントに含まれている場合、ビットマップのバウンディングボックス内のすべてのビットが設定され、ページに既に存在する色またはグラフィックが上書きされることを意味します。この効果が望ましくない場合、およびグラフの描画で明示的に割り当てられたビットのみを設定する場合は、bgcolor="transparent"
を設定します。
graph {
bgcolor="lightblue"
label="Home"
subgraph cluster_ground_floor {
bgcolor="lightgreen"
label="Ground Floor"
Lounge
Kitchen
}
subgraph cluster_top_floor {
bgcolor="lightyellow"
label="Top Floor"
Bedroom
Bathroom
}
}
- グラフ
- クラスタ
center
型: bool、デフォルト: false
true
またはfalse
になります。
- グラフ
charset
型: string、デフォルト: "UTF-8"
デフォルト値は"UTF-8"
です。他の有効な値は次のとおりです。
"utf-8"
/"utf8"
(デフォルト値)"iso-8859-1"
/"ISO_8859-1"
/"ISO8859-1"
/"ISO-IR-100"
/"Latin1"
/"l1"
/"latin-1"
"big-5"
/"big5"
:Big-5中国語エンコーディング
charset
属性は大文字と小文字を区別しません。
入力で使用される文字エンコーディングがcharset
値と一致しない場合、結果の出力は非常に奇妙になる可能性があることに注意してください。
Big-5エンコーディングと組み合わせてHTMLのようなラベルを使用することはできません。
digraph G {
charset="UTF-8"
"🍔" -> "💩"
}
- グラフ
class
型: string、デフォルト: ""
CSSクラス名を使用してSVG出力をスタイル設定するには、stylesheet
と組み合わせて使用します。
複数のスペース区切りのクラスがサポートされています。
関連項目
例
digraph G {
graph [class="cats"];
subgraph cluster_big {
graph [class="big_cats"];
"Lion" [class="yellow social"];
"Snow Leopard" [class="white solitary"];
}
}
- エッジ
- ノード
- クラスタ
- グラフ
注:svgのみ。
cluster
型: bool、デフォルト: false
サブグラフクラスタは異なる方法でレンダリングされます。たとえば、dot
はサブグラフクラスタの周りにボックスを描画しますが、非サブグラフクラスタの周りにボックスは描画しません。
例
digraph cats {
subgraph cluster_big_cats {
// This subgraph is a cluster, because the name begins with "cluster"
"Lion";
"Snow Leopard";
}
subgraph domestic_cats {
// This subgraph is also a cluster, because cluster=true.
cluster=true;
"Siamese";
"Persian";
}
subgraph not_a_cluster {
// This subgraph is not a cluster, because it doesn't start with "cluster",
// nor sets cluster=true.
"Wildcat";
}
}
- クラスタ
- サブグラフ
clusterrank
型: clusterMode、デフォルト: local
clusterrank=local
の場合、名前がcluster
で始まるサブグラフは特別な処理を受けます。
サブグラフは別々にレイアウトされ、次に単位として親グラフに統合され、その周りにバウンディング矩形が描画されます。クラスタにlabel
パラメータがある場合、このラベルは矩形内に表示されます。
また、クラスタの中にクラスタを含めることもできます。
clusterrank=global
とclusterrank=none
のモードは同一であり、どちらも特別なクラスタ処理をオフにします。
- グラフ
注: dotのみ。
Graphvizコードベースから"clusterrank"
を検索
color
型: color | colorList、デフォルト: black
後者の場合、fontcolor
属性を使用します。
エッジの場合、値は単一の色またはcolorList
のいずれかになります。
後者の場合、colorList
に割合がない場合、エッジは並列スプラインまたは線を使用して描画され、リスト内の各色が指定された順序で描画されます。
ヘッドアロー(もしあれば)はリストの最初の色を使用して描画され、テイルアロー(もしあれば)は2番目の色を使用して描画されます。これは、反対方向のエッジを描画する一般的なケースをサポートしますが、別々にルーティングされたマルチエッジの代わりに並列スプラインを使用します。
割合が使用されている場合、色は連続して描画され、各色にはエッジのおおよそ指定された割合が与えられます。
たとえば、次のグラフ
digraph G {
a -> b [dir=both color="red:blue"]
c -> d [dir=none color="green:red;0.25:blue"]
}
は次のようになります。
digraph G {
subgraph cluster_yellow {
color="yellow"
a [color="red"]
b [color="green"]
}
}
は次のようになります。
関連項目
有効な対象- エッジ
- ノード
- クラスタ
colorscheme
型: string、デフォルト: ""
特に、color
の値が"xxx"
または"//xxx"
形式の場合、色xxx
は現在のカラースキームに従って評価されます。カラースキームが設定されていない場合、標準のX11命名が使用されます。
たとえば、colorscheme=oranges9
(Brewerカラースキームから)の場合、color=7
はcolor="/oranges9/7"
、つまりoranges9
カラースキームの7番目の色として解釈されます。
graph {
node [colorscheme=oranges9] # Apply colorscheme to all nodes
1 [color=1]
2 [color=2]
3 [color=3]
4 [color=4]
5 [color=5]
6 [color=6]
7 [color=7]
8 [color=8]
9 [color=9]
}
graph {
node [colorscheme=greens9] # Apply colorscheme to all nodes
1 [color=1]
2 [color=2]
3 [color=3]
4 [color=4]
5 [color=5]
6 [color=6]
7 [color=7]
8 [color=8]
9 [color=9]
}
関連項目
有効な対象- エッジ
- ノード
- クラスタ
- グラフ
Graphvizコードベースから"colorscheme"
を検索
comment
型: string、デフォルト: ""
デバイス依存。
digraph {
comment="I am a graph"
A [comment="I am node A"]
B [comment="I am node B"]
A->B [comment="I am an edge"]
}
コメント付きのSVGを出力
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.47.1 (20210417.1919)
-->
<!-- This is a graph -->
<!-- Pages: 1 -->
<svg width="62pt" height="116pt"
viewBox="0.00 0.00 62.00 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
<polygon fill="white" stroke="transparent" points="-4,4 -4,-112 58,-112 58,4 -4,4"/>
<!-- A -->
<!-- I am node A -->
<g id="node1" class="node">
<title>A</title>
<ellipse fill="none" stroke="black" cx="27" cy="-90" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-86.3" font-family="Times,serif" font-size="14.00">A</text>
</g>
<!-- B -->
<!-- I am node B -->
<g id="node2" class="node">
<title>B</title>
<ellipse fill="none" stroke="black" cx="27" cy="-18" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-14.3" font-family="Times,serif" font-size="14.00">B</text>
</g>
<!-- A->B -->
<!-- I am an edge -->
<g id="edge1" class="edge">
<title>A->B</title>
<path fill="none" stroke="black" d="M27,-71.7C27,-63.98 27,-54.71 27,-46.11"/>
<polygon fill="black" stroke="black" points="30.5,-46.1 27,-36.1 23.5,-46.1 30.5,-46.1"/>
</g>
</g>
</svg>
- エッジ
- ノード
- グラフ
compound
型: bool、デフォルト: false
digraph {
compound=true;
subgraph cluster_a {
label="Cluster A";
node1; node3; node5; node7;
}
subgraph cluster_b {
label="Cluster B";
node2; node4; node6; node8;
}
node1 -> node2 [label="1"];
node3 -> node4 [label="2" ltail="cluster_a"];
node5 -> node6 [label="3" lhead="cluster_b"];
node7 -> node8 [label="4" ltail="cluster_a" lhead="cluster_b"];
}
- グラフ
注: dotのみ。
concentrate
型: bool、デフォルト: false
これにより、マルチエッジが単一のエッジにマージされ、部分的に並列のエッジがパスの一部を共有するようになります。後者の機能は、dot
以外ではまだ使用できません。
digraph {
concentrate=true
a -> b [label="1"]
c -> b
d -> b
}
- グラフ
Graphvizコードベースから"concentrate"
を検索
constraint
型: bool、デフォルト: true
たとえば、次のグラフでは
digraph G {
a -> c;
a -> b;
b -> c [constraint=false];
}
エッジb -> c
はランク割り当て中に制約を追加しないため、唯一の制約はa
がb
とc
の上にあることであり、次のグラフが生成されます。
- エッジ
注: dotのみ。
Graphvizコードベースから"constraint"
を検索
Damping
型: double、デフォルト: 0.99
、最小値: 0.0
各反復で、ノードの移動は潜在的な動きのこの係数に制限されます。1.0
未満であることで、システムは「冷却」する傾向があり、サイクリングを防ぎます。
- グラフ
注: neatoのみ。
decorate
型: bool、デフォルト: false
trueの場合、エッジラベルを2セグメントのポリラインでエッジに接続し、ラベルに下線を引いてから、スプラインの最も近い点に移動します。
digraph {
a -> a [label="AA" decorate=true]
a -> b [label="AB" decorate=true]
b -> b [label="BB" decorate=false]
}
- エッジ
defaultdist
型: double、デフォルト: 1+(avg. len)*sqrt(|V|)
、最小値: epsilon
小さすぎると、接続コンポーネントが重なる可能性があります。
pack=false
の場合にのみ適用されます。
- グラフ
注: neatoのみ。
Graphvizコードベースから"defaultdist"
を検索
dim
型: int、デフォルト: 2
、最小値: 2
許可される最大値は10
です。
- グラフ
dimen
型: int、デフォルト: 2
、最小値: 2
許可される最大値は10
です。
dimen
とdim
の両方が設定されている場合、後者はレイアウトに使用される次元を指定し、前者はレンダリングに使用される次元を指定します。dimen
のみが設定されている場合、これはレイアウトとレンダリングの両方の次元に使用されます。
現時点では、レンダリングのすべての側面が2Dであることに注意してください。これには、ノードの形状とサイズ、重複の除去、エッジのルーティングが含まれます。したがって、dimen > 2
の場合、有効な情報はノードのpos
属性のみです。
その他のすべての座標は2Dであり、せいぜい高次元点を平面に投影したものを反映します。
有効な対象- グラフ
dir
型: dirType、デフォルト: forward
(有向)、none
(無向)
エッジのどの端を矢印の先端で装飾するべきかを示します。
矢印の先端の実際の種類は、arrowhead
とarrowtail
属性を使用して指定できます。
制限事項を参照してください。
digraph {
A->B [dir=forward]
C->D [dir=back]
E->F [dir=both]
G->H [dir=none]
}
- エッジ
diredgeconstraints
trueの場合、エッジが下向きを指す必要があるように、最大の(ヒューリスティックな)有向非巡回グラフ内の各エッジに対して制約が生成されます。
mode="ipsep"
の場合にのみ有効です。
hier
の場合、mode="hier"
で使用されるものと同様のレベル制約を生成します。主な違いは、後者の場合、これらの制約のみが関係するため、より高速なソルバーを使用できることです。
- グラフ
注: neatoのみ。
Graphvizコードベースから"diredgeconstraints"
を検索
distortion
型: double、デフォルト: 0.0
、最小値: -100.0
正の値は、下部よりも上部が大きくなる原因となります。負の値は逆の効果があります。
skew
も参照してください。
graph {
LargeBottom [shape=polygon sides=4 distortion=-.5]
LargeTop [shape=polygon sides=4 distortion=.5]
}
- ノード
Graphvizコードベースから"distortion"
を検索
dpi
型: double、デフォルト: 96.0
、0.0
bitmap
出力の場合、dpi
は、サイズと配置の両方において、テキストレンダリングがより正確に行われることを保証します。
SVG出力の場合、dpi
は、出力の寸法が正しいポイント数またはインチに対応することを保証します。
- グラフ
注: bitmap出力、svgのみ。
edgehref
edgeURL
の同義語型: escString、デフォルト: ""
関連項目
有効な対象- エッジ
注: map、svgのみ。
edgetarget
edgeURL
リンクに使用するブラウザウィンドウ型: escString、デフォルト: <none>
エッジにURL
またはedgeURL
属性がある場合、edgetarget
は、エッジのラベル以外の部分に添付されたURLにブラウザのどのウィンドウを使用するかを決定します。
edgetarget=_graphviz
を設定すると、まだ存在しない場合は新しいウィンドウが開き、存在する場合は再利用されます。
未定義の場合、target
の値が代わりに使用されます。
- エッジ
注: map、svgのみ。
Graphvizコードベースから"edgetarget"
を検索
edgetooltip
型: escString、デフォルト: ""
- エッジ
Graphvizコードベースから"edgetooltip"
を検索
edgeURL
型: escString、デフォルト: ""
edgeURL
は、エッジに対して定義されているURL
をオーバーライドします。
また、edgeURL
は、それぞれheadURL
またはtailURL
によってオーバーライドされない限り、ヘッドノードまたはテイルノードの近くに使用されます。
制限事項を参照してください。
関連項目
有効な対象- エッジ
注: map、svgのみ。
epsilon
型: double、デフォルト: .0001 * # nodes
(mode == KK)、.0001
(mode == major)、.01
(mode == sgd)
すべてのエネルギー勾配の長さの2乗がepsilon
未満の場合、アルゴリズムは停止します。
- グラフ
注: neatoのみ。
esep
型: addDouble | addPoint、デフォルト: +3
sep
について説明されているものと同じ解釈です。esep
は通常、sep
よりも厳密に小さくなければなりません。
- グラフ
注記: neato、fdp、sfdp、osage、circo、twopi のみ。
Graphvizのコードベースで"esep"
を検索してください
fillcolor
タイプ: color | colorList、デフォルト: lightgrey
(ノード)、black
(クラスタ)
style=filled
、または塗りつぶされたarrowhead
を想定しています。
fillcolor
が定義されていない場合、color
が使用されます。(クラスタの場合、color
が定義されていない場合、bgcolor
が使用されます。) これが定義されていない場合、shape=point
の場合や出力形式がMIF
の場合(デフォルトで黒を使用する)を除き、デフォルト値が使用されます。
colorList
を値として指定すると、グラデーション塗りつぶしが使用されます。デフォルトでは線形塗りつぶしですが、style=radial
を設定すると、放射状塗りつぶしになります。現在、2色のみが使用されます。2番目の色(コロンの後)が欠落している場合、デフォルトの色が使用されます。
グラデーション角度を設定するためのgradientangle
属性も参照してください。
クラスタは、定義されている場合、ルートグラフの属性を継承することに注意してください。そのため、ルートグラフでfillcolor
が定義されている場合、これはクラスタに設定されたcolor
またはbgcolor
属性を上書きします。
- ノード
- エッジ
- クラスタ
Graphvizのコードベースで"fillcolor"
を検索してください
fixedsize
タイプ: bool | string、デフォルト: false
false
の場合、ノードのサイズは、ラベルと画像(存在する場合)を含むのに必要な最小の幅と高さによって決定され、margin
属性で指定されたマージンが追加されます。
幅と高さは、これらのパラメータの最小値を指定するwidth
およびheight
属性で指定されたサイズ以上である必要があります。
true
の場合、ノードのサイズはwidth
およびheight
属性の値のみで指定され、テキストラベルを含むように拡大されません。ラベル(マージンを含む)がこれらの制限内に収まらない場合は、警告が表示されます。
fixedsize
属性がshape
に設定されている場合、width
およびheight
属性はノードシェイプのサイズも決定しますが、ラベルははるかに大きくなる可能性があります。ノードの重なりを避ける際には、ラベルとシェイプの両方のサイズが使用されますが、ノードへのすべてのエッジはラベルを無視し、ノードシェイプのみに接触します。ラベルが大きすぎる場合、警告は表示されません。
- ノード
Graphvizのコードベースで"fixedsize"
を検索してください
fontcolor
タイプ: color、デフォルト: black
- エッジ
- ノード
- グラフ
- クラスタ
Graphvizのコードベースで"fontcolor"
を検索してください
fontname
タイプ: string、デフォルト: "Times-Roman"
これは出力形式に大きく依存し、PostScriptやSVGなどのビットマップ以外の出力の場合、グラフが表示または印刷されるときのフォントの可用性に依存します。そのため、Times-Roman、Helvetica、Courierなど、一般的に利用可能なフォントフェイスに依存するのが最善です。
フォント名の解決方法も、フォント名の解決を処理する基盤となるライブラリによって異なります。fontconfigライブラリを使用してGraphvizがビルドされた場合、後者のライブラリを使用してフォントが検索されます。名前の解決方法と利用可能なフォントについては、fc-list
、fc-match
、その他のfontconfigコマンドを参照してください。OS XのQuartzなど、他のシステムでは独自のフォントパッケージが提供される場合があります。
太字や斜体などのさまざまなフォント属性は、フォント名に組み込むことができます。残念ながら、構文は、どのフォントシステムが主要であるかによって異なります。そのため、fontname="times bold italic"
を使用すると、通常の主要フォントライブラリであるPangoを使用して、太字で斜体のTimesフォントが生成されます。あるいは、fontname="times:italic"
はfontconfigから斜体のTimesフォントを生成し、fontname="times-bold"
はQuartzを使用して太字のTimesに解決されます。ご使用のGraphvizシステムで使用されているパッケージを確認し、関連するドキュメントを参照する必要があります。
Graphvizが高レベルのフォントライブラリを使用してビルドされていない場合、fontnameはType 1またはTrueTypeフォントファイルの名前と見なされます。fontname=schlbk
を指定すると、ツールはfontpath
属性で指定されたディレクトリのいずれかにあるschlbk.ttf
またはschlbk.pfa
またはschlbk.pfb
という名前のファイルを探します。ルックアップは、一般的なフォントのさまざまなエイリアスをサポートしています。
digraph {
label="Comic Sans MS"
fontname="Comic Sans MS"
subgraph cluster_a {
label="Courier New"
fontname="Courier New"
Arial [fontname="Arial"];
Arial -> Arial [label="Impact" fontname="Impact"]
}
}
- エッジ
- ノード
- グラフ
- クラスタ
Graphvizのコードベースで"fontname"
を検索してください
fontnames
型: string、デフォルト: ""
fontnames
が未定義の場合、またはsvg
の場合、出力は既知のSVGフォント名を使用しようとします。
たとえば、デフォルトのフォントTimes-Roman
は基本的なSVGフォントserif
にマップされます。これは、fontnames
をps
またはhd
に設定することで上書きできます。前者の場合、Times-Roman
などの既知のPostScriptフォント名が出力に使用されます。後者の場合、fontconfigフォントの規則が使用されます。したがって、Times-Roman
はNimbus Roman No9 L
として扱われます。これらの最後の2つのオプションは、これらの豊富なフォントネームスペースをサポートするSVGビューアで役立ちます。
- グラフ
注:svgのみ。
Graphvizのコードベースで"fontnames"
を検索してください
fontpath
タイプ: string、デフォルト: <システム依存>
fontconfigライブラリを使用してGraphvizがビルドされていない場合に使用されます。
fontpath
が設定されていない場合、環境変数DOTFONTPATH
がチェックされます。
DOTFONTPATH
が設定されていない場合、GDFONTPATH
がチェックされます。
GDFONTPATH
が設定されていない場合、libgdはコンパイル時に組み込まれたフォントパスを使用します。
fontpath
はルートグラフの属性であることに注意してください。
- グラフ
Graphvizのコードベースで"fontpath"
を検索してください
fontsize
タイプ: double、デフォルト: 14.0
、最小値: 1.0
digraph {
label="40pt Graph Label"
fontsize="40"
subgraph cluster_a {
label="30pt Cluster Label"
fontsize="30pt"
"20pt Node" [fontsize="20pt"];
"20pt Node"-> "20pt Node" [label="10pt Edge" fontsize="10"]
}
}
- エッジ
- ノード
- グラフ
- クラスタ
Graphvizのコードベースで"fontsize"
を検索してください
forcelabels
xlabels
を、重なっている場合でも配置するかどうか型: bool、デフォルト: true
trueの場合、ノードやその他のラベルと重なっている場合でも、すべてのxlabel
属性が配置されます。
- グラフ
Graphvizのコードベースで"forcelabels"
を検索してください
gradientangle
タイプ: int、デフォルト: 0
、最小値: 0
線形塗りつぶしの場合、色は角度とオブジェクトの中心で指定された線に沿って変換されます。放射状塗りつぶしの場合、値が0の場合は、色が中心から放射状に変換されます。0以外の値の場合、色は値で指定されたオブジェクトの周辺に近い点から変換されます。
設定されていない場合、デフォルトの角度は0です。
有効な対象- ノード
- クラスタ
- グラフ
Graphvizのコードベースで"gradientangle"
を検索してください
group
型: string、デフォルト: ""
エッジの端点が同じグループに属している場合、つまり、同じgroup
属性を持っている場合、交差を避け、エッジをまっすぐに保つようにパラメータが設定されます。
- ノード
注: dotのみ。
Graphvizのコードベースで"group"
を検索してください
head_lp
タイプ: point
有効な対象- エッジ
注:書き込み専用。
Graphvizのコードベースで"head_lp"
を検索してください
headclip
型: bool、デフォルト: true
それ以外の場合、エッジの端はノードの中心、または該当する場合はポートの中心まで伸びます。
有効な対象- エッジ
Graphvizのコードベースで"headclip"
を検索してください
headhref
headURL
の同義語型: escString、デフォルト: ""
関連項目
有効な対象- エッジ
注: map、svgのみ。
Graphvizのコードベースで"headhref"
を検索してください
headlabel
タイプ: lblString、デフォルト: ""
制限事項を参照してください。
有効な対象- エッジ
Graphvizのコードベースで"headlabel"
を検索してください
headport
タイプ: portPos、デフォルト: center
デフォルトの場合、エッジはノードの中心を狙い、ノードの境界でクリップされます。
制限事項を参照してください。
有効な対象- エッジ
Graphvizのコードベースで"headport"
を検索してください
headtarget
headURL
リンクに使用されるブラウザウィンドウ型: escString、デフォルト: <none>
エッジにheadURL
がある場合、headtarget
はURLに使用するブラウザのウィンドウを決定します。headURL=_graphviz
を設定すると、ウィンドウが存在しない場合は新しいウィンドウが開き、存在する場合はそのウィンドウが再利用されます。
未定義の場合、target
の値が使用されます。
- エッジ
注: map、svgのみ。
Graphvizのコードベースで"headtarget"
を検索してください
headtooltip
型: escString、デフォルト: ""
エッジにheadURL
属性がある場合にのみ使用されます。
関連項目
有効な対象- エッジ
Graphvizのコードベースで"headtooltip"
を検索してください
headURL
headURL
はエッジのヘッドラベルの一部として出力されます。型: escString、デフォルト: ""
また、この値はヘッドノード付近で使用され、URL
値を上書きします。
制限事項を参照してください。
関連項目
有効な対象- エッジ
注: map、svgのみ。
Graphvizのコードベースで"headURL"
を検索してください
height
タイプ: double、デフォルト: 0.5
、最小値: 0.02
これはノードの初期の最小高さとして取得されます。fixedsize
がtrueの場合、これがノードの最終的な高さになります。それ以外の場合、ノードラベルに収まるためにさらに高さが必要な場合、ノードの高さが増やされてラベルが含まれるようになります。
出力形式がdot
の場合、height
に与えられた値が最終値になります。
ノードシェイプが正方形の場合、幅と高さが同一になります。
width
とheight
の両方が明示的に設定されている場合、2つの値のうち大きい方が使用されます。width
またはheight
のいずれか一方のみが明示的に設定されている場合、その値がwidth
とheight
の両方に使用されます。- どちらも明示的に設定されていない場合、2つのデフォルト値のうち小さい方が使用されます。
digraph G {
"default"
"1in" [height=1]
"2in" [height=2]
}
関連項目
有効な対象- ノード
href
URL
の同義語型: escString、デフォルト: ""
関連項目
有効な対象- グラフ
- クラスタ
- ノード
- エッジ
注記:map、postscript、svgのみ。
id
型: escString、デフォルト: ""
グラフ作成者が、出力に含めるグラフオブジェクトの識別子を指定できるようにします。
通常の\N
、\E
、\G
の置換が適用されます。
指定された場合、その後の使用目的においてid
値の一意性を維持する責任は提供者側にあります。
特に、\E
はマルチエッジに対して一意のIDを提供しないことに注意してください。
id
属性が提供されていない場合、一意の内部IDが使用されます。ただし、この値はグラフライターでは予測できません。
グラフがid
属性を提供する場合、これは内部的に生成された属性のプレフィックスとして使用されます。内部で使用される属性を一意にすることで、ユーザーは同じドキュメントに複数のイメージマップを含めることができます。
- グラフ
- クラスタ
- ノード
- エッジ
注記:map、postscript、svgのみ。
image
型: string、デフォルト: ""
画像ファイルは、認識されている形式(通常はJPEG、PNG、GIF、BMP、SVG、またはPostscript)のいずれかでなければならず、目的の出力形式に変換できる必要があります。
ファイルには、画像サイズ情報が含まれている必要があります。
- ビットマップ形式には、通常、画像サイズが既に含まれています。
- PostScriptファイルには、
%%BoundingBox:
で始まる行が含まれていなければなりません。その後に、画像のバウンディングボックスの左下のx座標とy座標、および右上のx座標とy座標を指定する4つの整数が続きます。座標はポイント単位です。 - SVG画像ファイルには、幅と高さの属性が含まれている必要があります。通常はsvg要素の一部として含まれます。これらの値は、浮動小数点数に、オプションで単位(例:
width="76pt"
)を付けた形式である必要があります。認識される単位は、インチ、ピクセル、ピカ、ポイント、センチメートル、ミリメートルのそれぞれを表すin、px、pc、pt、cm、mmです。デフォルトの単位はポイントです。
shapefile
属性とは異なり、画像はノード全体ではなくノードの内容として扱われます。特に、画像は長方形だけでなく、任意の形状のノードに含めることができます。
ローカルリソースへのパスのみがサポートされています。リモートリソースへのURLを使用する場合は、dot_url_resolve.py
スクリプトを参照してください。
- ノード
imagepath
型: string、デフォルト: ""
image
属性で指定する場合、またはHTMLライクなラベルのIMG
要素を使用する場合。
imagepath
は、(絶対または相対)パス名のリストで、それぞれセミコロン;
(Windowsの場合)またはコロン:
(その他のOS)で区切られます。
指定された名前のファイルが最初に検出されたディレクトリを使用して、画像が読み込まれます。
imagepath
が設定されていない場合、画像ファイルの相対パス名は、現在の作業ディレクトリを基準に解釈されます。
- グラフ
Graphvizコードベースで"imagepath"
を検索する
imagepos
型:文字列、デフォルト:"mc"
imagepos
は、画像が包含ノードより小さい場合にのみ有効です。
デフォルトは、水平方向と垂直方向の両方の中央揃えです。
有効な値
tl
- 左上tc
- 上中央tr
- 右上ml
- 左中央mc
- 中央 (デフォルト)mr
- 右中央bl
- 左下bc
- 下中央br
- 右下
- ノード
Graphvizコードベースで"imagepos"
を検索する
imagescale
タイプ: bool | string、デフォルト: false
一般的に、画像は自然なサイズが与えられ(dpi
を参照)、ノードのサイズは、画像、ラベル、マージン、および周辺部を含むのに十分な大きさになります。
幅と高さは、最小のwidth
とheight
よりも少なくとも大きくなります。ただし、fixedsize=true
の場合、幅と高さの属性はノードの正確なサイズを指定します。
- レンダリング時に、デフォルトの場合(
imagescale=false
)、画像は自然なサイズを維持します。 imagescale=true
の場合、画像はノード内に収まるように均一に拡大縮小されます(つまり、アスペクト比は維持されます)。画像の少なくとも一方の寸法は、ノードのサイズを考慮して可能な限り大きくなります。imagescale=width
の場合、画像の幅はノードの幅に合わせて拡大縮小されます。imagescale=height
の場合も、対応するプロパティが保持されます。imagescale=both
の場合、高さ、幅の両方が個別にノードに合わせて拡大縮小されます。
いずれの場合も、画像の寸法がノードの対応する寸法よりも大きい場合、画像のその寸法はノードに収まるように縮小されます。
拡大の場合と同様に、imagescale=true
の場合、幅と高さが均一に拡大縮小されます。
- ノード
Graphvizコードベースで"imagescale"
を検索する
inputscale
型:倍精度浮動小数点数、デフォルト:<none>
初期入力位置(pos
属性で指定)をサポートするレイアウトアルゴリズムの場合、この属性を使用して値を適切にスケーリングできます。
デフォルトでは、fdp
とneato
は、pos
のx値とy値をインチ単位と解釈します。(注記:neato -n(2)
は、座標をポイント単位と見なします。これは、pos属性のレイアウトアルゴリズムで使用される単位です。)したがって、グラフにポイント単位のpos属性がある場合、inputscale=72
を設定する必要があります。これは、-s
フラグを使用してコマンドラインでも設定できます。
設定されていない場合、スケーリングは行われず、入力の単位はインチとして扱われます。
inputscale=0
はinputscale=72
と同じです。
- グラフ
Graphvizコードベースで"inputscale"
を検索する
K
型:倍精度浮動小数点数、デフォルト:0.3
、最小値:0
これは、理想的なエッジの長さ(インチ単位)にほぼ対応しており、K
を増やすとノード間の距離が増加する傾向があります。
隣接するノードに対しては、エッジ属性len
を使用してこの値を上書きできることに注意してください。
- グラフ
- クラスタ
label
型:lblString、デフォルト:"\N"
(ノード)、""
(その他)
ノードのshape
がrecordの場合、ラベルは特別な形式を持ち、レコードレイアウトを記述することができます。
ノードのデフォルトのラベルは"\N"
であるため、ノードの名前またはIDがそのラベルになります。
技術的には、ノードの名前はHTML文字列にすることができますが、ノードのラベルがHTMLライクなラベルとして解釈されるという意味ではありません。これは、ノードの実際のラベルは通常の文字列であり、ノードの名前に格納されている生のバイトで置き換えられるためです。
HTMLライクなラベルを取得するには、ラベル属性値自体がHTML文字列である必要があります。
graph {
label="Vincent van Gogh Paintings"
subgraph cluster_self_portraits {
label="Self-portraits"
spwgfh [label="Self-Portrait with Grey Felt Hat"]
spaap [label="Self-Portrait as a Painter"]
}
subgraph cluster_flowers {
label="Flowers"
sf [label="Sunflowers"]
ab [label="Almond Blossom"]
}
}
- エッジ
- ノード
- グラフ
- クラスタ
label_scheme
|edgelabel|*
の形式であるノードを、エッジラベルを表す特別なノードとして扱うかどうか。タイプ: int、デフォルト: 0
、最小値: 0
- デフォルトの
label_scheme=0
は、何も効果がありません。 label_scheme=1
の場合、sfdp
はそのようなノードをその隣接ノードの中心に近づけるペナルティベースの方法を使用します。label_scheme=2
の場合、sfdp
はそのようなノードをその隣接ノードの古い中心に近づけるペナルティベースの方法を使用します。- 最後に、
label_scheme=3
は、オーバーラップの除去と整列の2段階のプロセスを呼び出します。
- グラフ
注:sfdpのみ。
Graphvizコードベースで"label_scheme"
を検索する
labelangle
型:倍精度浮動小数点数、デフォルト:-25.0
、最小値:-180.0
labeldistance
と合わせて、headlabel
/ taillabel
が極座標においてヘッド / テールに対してどこに配置されるかを決定します。
座標系の原点は、エッジがノードに接する点です。0度の光線は、原点からエッジに沿って後ろ向きに、原点でエッジと平行に伸びています。
角度(度単位)は、0度の光線からの回転を指定します。正の角度は反時計回り、負の角度は時計回りに移動します。
有効な対象- エッジ
Graphvizコードベースで"labelangle"
を検索する
labeldistance
型: double、デフォルト: 1.0
、最小値: 0.0
デフォルトの距離は10ポイントです。
labeldistance
はそのデフォルト値を乗算します。
詳しくはlabelangle
を参照してください。
- エッジ
Graphvizコードベースで"labeldistance"
を検索する
labelfloat
型: bool、デフォルト: false
特に、他のエッジの上に表示される場合があります。
有効な対象- エッジ
Graphvizコードベースで"labelfloat"
を検索する
labelfontcolor
タイプ: color、デフォルト: black
設定されていない場合、エッジのfontcolor
がデフォルトになります。
- エッジ
Graphvizコードベースで"labelfontcolor"
を検索する
labelfontname
headlabel
とtaillabel
のフォントタイプ: string、デフォルト: "Times-Roman"
headlabel
とtaillabel
に使用されるフォント。
設定されていない場合、エッジのfontname
がデフォルトになります。
- エッジ
Graphvizコードベースで"labelfontname"
を検索する
labelfontsize
headlabel
とtaillabel
のフォントサイズタイプ: double、デフォルト: 14.0
、最小値: 1.0
headlabel
および taillabel
に使用するフォントサイズ(ポイント単位)。ポイント
設定されていない場合、エッジの fontsize
のデフォルト値が使用されます。
- エッジ
Graphviz のコードベースで "labelfontsize"
を検索してください
labelhref
labelURL
の同義語型: escString、デフォルト: ""
関連項目
有効な対象- エッジ
注: map、svgのみ。
Graphviz のコードベースで "labelhref"
を検索してください
labeljust
型: 文字列、デフォルト: "c"
labeljust=r
の場合、ラベルは境界矩形内で右揃えになります。labeljust=l
の場合、左揃えになります。- それ以外の場合は、ラベルは中央揃えになります。
サブグラフは親から属性を継承することに注意してください。そのため、ルートグラフで labeljust=l
を設定した場合、サブグラフはその値を継承します。
digraph {
label="l"
labeljust=l
a
}
digraph {
label="r"
labeljust=r
b
}
digraph {
subgraph cluster_l {
label="l"
labeljust=l
a
}
subgraph cluster_c {
label="c"
labeljust=c
b
}
subgraph cluster_r {
label="r"
labeljust=r
c
}
}
- グラフ
- クラスタ
Graphviz のコードベースで "labeljust"
を検索してください
labelloc
型: 文字列、デフォルト: "t"
(クラスタ)、"b"
(ルートグラフ)、"c"
(ノード)
グラフとクラスタでは、labelloc=t
と labelloc=b
のみが許可され、それぞれ上部と下部への配置に対応します。
デフォルトでは、ルートグラフのラベルは下部に、クラスタのラベルは上部に配置されます。
サブグラフは親から属性を継承することに注意してください。そのため、ルートグラフで labelloc=b
を設定した場合、サブグラフはその値を継承します。
ノードの場合、この属性はノードの高さがラベルの高さを超える場合にのみ使用されます。
labelloc=t
、labelloc=c
、labelloc=b
の場合、ラベルはそれぞれノードの上部に揃えられ、中央に配置され、ノードの下部に揃えられます。
デフォルトでは、ラベルは垂直方向に中央揃えされます。
digraph {
labelloc="t"
label="Title"
a -> b
}
digraph {
labelloc="b"
label="Title"
a -> b
}
digraph {
label="Graph Title"
subgraph cluster_t {
labelloc="t"
label="Cluster Top"
a -> b
}
subgraph cluster_b {
labelloc="b"
label="Cluster Bottom"
c -> d
}
}
digraph {
t [labelloc=t]
c [labelloc=c]
b [labelloc=b]
}
- ノード
- グラフ
- クラスタ
Graphviz のコードベースで "labelloc"
を検索してください
labeltarget
labelURL
リンクを開くブラウザウィンドウ型: escString、デフォルト: <none>
エッジに URL
または labelURL
属性がある場合、この属性によって、ラベルに添付された URL に使用されるブラウザのウィンドウが決まります。
labeltarget=_graphviz
を設定すると、ウィンドウが存在しない場合は新しいウィンドウが開き、存在する場合は再利用されます。
未定義の場合、target
の値が使用されます。
- エッジ
注: map、svgのみ。
Graphviz のコードベースで "labeltarget"
を検索してください
labeltooltip
型: escString、デフォルト: ""
- エッジ
Graphviz のコードベースで "labeltooltip"
を検索してください
labelURL
labelURL
はエッジのラベルに使用されるリンクです。型: escString、デフォルト: ""
labelURL
は、エッジに対して定義されている URL
をオーバーライドします。
関連項目
有効な対象- エッジ
注: map、svgのみ。
Graphviz のコードベースで "labelURL"
を検索してください
landscape
型: bool、デフォルト: false
rotate=90
または orientation=landscape
と同義です。
digraph {
landscape=true
a -> b
}
関連項目
有効な対象- グラフ
Graphviz のコードベースで "landscape"
を検索してください
layer
型: layerRange、デフォルト: ""
- エッジ
- ノード
- クラスタ
Graphviz のコードベースで "layer"
を検索してください
layerlistsep
layerRange
型の属性を範囲のリストに分割するために使用されるセパレータ文字。型: 文字列、デフォルト: ","
- グラフ
Graphviz のコードベースで "layerlistsep"
を検索してください
layers
型: layerList、デフォルト: ""
グラフは、個別のレイヤーに出力されます。現在の出力レイヤーに属するコンポーネントのみが表示されます。
描画レイヤー(オーバーレイ)の使用方法 を参照してください。
有効な対象- グラフ
Graphviz のコードベースで "layers"
を検索してください
layerselect
型: layerRange、デフォルト: ""
- グラフ
Graphviz のコードベースで "layerselect"
を検索してください
layersep
layers
属性をレイヤー名のリストに分割するためのセパレータ文字。型: 文字列、デフォルト: ":\t "
- グラフ
Graphviz のコードベースで "layersep"
を検索してください
layout
型: string、デフォルト: ""
使用するレイアウトエンジンの名前を指定します(例: dot
または neato
)。
通常、グラフはレイアウトの種類とは独立している必要があります。しかし、場合によっては、グラフ内に目的のレイアウトの種類を埋め込む方が便利な場合があります。
たとえば、レイアウトからの位置情報を含むグラフは、関連するレイアウトエンジンを記録したい場合があります。
この属性は、-K
フラグ または使用された実際のコマンド名よりも優先されます。
- グラフ
Graphviz のコードベースで "layout"
を検索してください
len
型: 倍精度浮動小数点数、デフォルト: 1.0
(neato)、0.3
(fdp)
関連項目
有効な対象- エッジ
Graphviz のコードベースで "len"
を検索してください
levels
型: 整数、デフォルト: INT_MAX
、最小値: 0.0
- グラフ
注:sfdpのみ。
Graphviz のコードベースで "levels"
を検索してください
levelsgap
型: 倍精度浮動小数点数、デフォルト: 0.0
mode="ipsep"
または mode=hier
の場合、neato
でのレベル制約の厳格さを指定します。
正の値が大きいほど制約が厳しくなり、レベル間の分離がより要求されます。一方、負の値は、レベル間の重複を許容することにより、制約を緩めます。
有効な対象- グラフ
注: neatoのみ。
Graphviz のコードベースで "levelsgap"
を検索してください
lhead
型: string、デフォルト: ""
compound
が true の場合、lhead
が定義されていて、実際のヘッドを含むクラスタの名前である場合、エッジはクラスタの境界でクリップされます。
digraph {
compound=true;
subgraph cluster_a {
label="Cluster A";
node1; node3; node5; node7;
}
subgraph cluster_b {
label="Cluster B";
node2; node4; node6; node8;
}
node1 -> node2 [label="1"];
node3 -> node4 [label="2" ltail="cluster_a"];
node5 -> node6 [label="3" lhead="cluster_b"];
node7 -> node8 [label="4" ltail="cluster_a" lhead="cluster_b"];
}
制限事項を参照してください。
有効な対象- エッジ
注: dotのみ。
Graphviz のコードベースで "lhead"
を検索してください
lheight
型: 倍精度浮動小数点数
有効な対象- グラフ
- クラスタ
注:書き込み専用。
Graphviz のコードベースで "lheight"
を検索してください
linelength
型: 整数、デフォルト: 128
、最小値: 60
例: 80 文字の長さの文字列("a " * 40
)は、標準出力 として印刷されるときに、2 行に分割されます。
$ echo 'digraph G { linelength=60; N0 [label="a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a "]; }' | dot -Tcanon
digraph G {
graph [linelength=60];
node [label="\N"];
N0 [label="a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a \
a a a a a a a a a a "];
}
ラベルが指定されたサイズに達すると、テキストはオーバーフローします。
linelength
という名前にもかかわらず、これは全体の行の長さ(ノード ID と属性キーを含む)ではなく、属性文字列の長さです。
- グラフ
Graphviz のコードベースで "linelength"
を検索してください
lp
タイプ: point
ラベルの中心位置(ポイント単位)。
有効な対象- エッジ
- グラフ
- クラスタ
注:書き込み専用。
Graphviz のコードベースで "lp"
を検索してください
ltail
型: string、デフォルト: ""
compound=true
の場合、ltail
が定義されていて、実際のテールを含むクラスタの名前である場合、エッジはクラスタの境界でクリップされます。
digraph {
compound=true;
subgraph cluster_a {
label="Cluster A";
node1; node3; node5; node7;
}
subgraph cluster_b {
label="Cluster B";
node2; node4; node6; node8;
}
node1 -> node2 [label="1"];
node3 -> node4 [label="2" ltail="cluster_a"];
node5 -> node6 [label="3" lhead="cluster_b"];
node7 -> node8 [label="4" ltail="cluster_a" lhead="cluster_b"];
}
制限事項を参照してください。
有効な対象- エッジ
注: dotのみ。
Graphviz のコードベースで "ltail"
を検索してください
lwidth
型: 倍精度浮動小数点数
有効な対象- グラフ
- クラスタ
注:書き込み専用。
Graphviz のコードベースで "lwidth"
を検索してください
margin
型: 倍精度浮動小数点数 | 点、デフォルト: <デバイス依存>
マージンが単一の倍精度浮動小数点数の場合、両方のマージンは指定された値に設定されます。
マージンは描画の一部ではなく、描画の周囲に残された空きスペースにすぎないことに注意してください。マージンは基本的に描画の平行移動に対応しており、ページ上に描画を中央揃えするために必要になります。マージンには実際には何も描画されません。描画の背景を実際に拡張するには、pad
属性を参照してください。
クラスタの場合、margin
はクラスタ内のノードとクラスタの境界ボックス間のスペースを指定します。デフォルトでは、これは 8 ポイントです。
ノードの場合、この属性はノードのラベルの周囲に残されたスペースを指定します。デフォルト値は 0.11,0.055
です。
graph {
"1.5x0.5" [shape=rect margin="1.5,0.5"] # in inches
"0.5x1.5" [shape=rect margin="0.5,1.5"] # in inches
"1.5x1.5" [shape=rect margin="1.5"] # in inches
}
graph {
bgcolor=lightgray
margin=0 # in inches
subgraph cluster_one {
margin=8 # in points
a
b
}
subgraph cluster_two {
margin=16 # in points
c
d
}
}
- ノード
- クラスタ
- グラフ
Graphviz のコードベースで "margin"
を検索してください
maxiter
型: 整数、デフォルト: 100 * ノード数
(mode == KK)、200
(mode == major)、30
(mode == sgd)、600
(fdp)
- グラフ
Graphviz のコードベースで "maxiter"
を検索してください
mclimit
型: 倍精度浮動小数点数、デフォルト: 1.0
交差最小化中に使用される MinQuit
(デフォルト = 8)と MaxIter
(デフォルト = 24)パラメータを変更するために使用される乗算スケールファクター。
これらは、改善なしで終了する試行回数と、各パスでの最大反復回数に対応します。
有効な対象- グラフ
注: dotのみ。
Graphviz のコードベースで "mclimit"
を検索してください
mindist
型: double、デフォルト: 1.0
、最小値: 0.0
- グラフ
注: circo のみ。
Graphviz のコードベースで "mindist"
を検索してください
minlen
型: 整数、デフォルト: 1
、最小値: 0
関連項目
有効な対象- エッジ
注: dotのみ。
Graphviz のコードベースで "minlen"
を検索してください
mode
type: 文字列、デフォルト: major
neato
はモードをサポートします。
mode="major"
:neato
はストレス・マジョライゼーション1を使用します。mode="KK"
:neato
は勾配降下法のKamada-Kawai2版を使用します。KK
は、ノード数が少ない(ノード数<100)グラフでは、著しく高速になる場合があります。大きな欠点は、KK
がサイクルを起こす可能性があることです。mode="sgd"
:neato
は確率的勾配降下法3の1つのバージョンを使用します。sgd
の利点は、以前の方法よりも高速で信頼性の高い収束である一方、sgd
の欠点は、固定数の反復回数で実行され、一部のグラフではmaxiter
の値を大きくする必要があることです。
neato
には、実験的なモードが2つあります。
mode="hier"
は、dot
で使用されるレイアウトと同様の上から下の指向性を追加し、mode="ipsep"
は、グラフがノード間の最小の垂直方向と水平方向の距離を指定できるようにします。(sep
属性を参照してください。)
-
Gansner, E.R., Koren, Y., North, S. (2005). Graph Drawing by Stress Majorization. In: Pach, J. (eds) Graph Drawing. GD 2004. Lecture Notes in Computer Science, vol 3383. Springer, Berlin, Heidelberg. ↩︎
-
Tomihisa Kamada, Satoru Kawai, An algorithm for drawing general undirected graphs, Information Processing Letters, Volume 31, Issue 1, 1989, Pages 7-15. ↩︎
-
J. X. Zheng, S. Pawar and D. F. M. Goodman, "Graph Drawing by Stochastic Gradient Descent," in IEEE Transactions on Visualization and Computer Graphics, vol. 25, no. 9, pp. 2738-2748, 1 Sept. 2019, doi: 10.1109/TVCG.2018.2859997. ↩︎
- グラフ
注: neatoのみ。
Graphvizのコードベースで"mode"
を検索してください
model
type: 文字列、デフォルト: shortpath
距離行列は、すべてのノードペア間の理想的な距離を指定します。neato
は、これらの距離を最適に達成するレイアウトを見つけようとします。デフォルトでは、各エッジの長さがそのlen
属性によって与えられる最短経路の長さを使用します。
model="circuit"
の場合、neatoは回路抵抗モデルを使用して距離を計算します。これは、クラスタを強調する傾向があります。model="subset"
の場合、neatoはサブセットモデルを使用します。これは、エッジの長さを、正確に一方の端点の隣接ノードの数に設定し、最短経路を計算します。これは、次数が高いノードを分離するのに役立ちます。
距離をより詳細に制御するには、model=mds
を使用できます。この場合、エッジのlen
は、その頂点間の理想的な距離として使用されます。
最短経路の計算は、エッジで接続されていないノードのペアに対してのみ使用されます。したがって、完全グラフを提供することにより、入力はすべての関連距離を指定できます。
有効な対象- グラフ
注: neatoのみ。
Graphvizのコードベースで"model"
を検索してください
newrank
型: bool、デフォルト: false
dot
の元のランキングアルゴリズムは、クラスタに対して再帰的です。これは、ランク数を減らし、よりコンパクトなレイアウトを作成できますが、ヘッドノードがテールノードよりも高いランクに配置される可能性があります。また、ノードが別々の非互換なサブグラフで制約されていないことを前提としています。たとえば、ノードはクラスタに属し、同時にクラスタに属さないノードでrank=same
によって制約されることはできません。
これにより、ノードは複数の制約の対象とすることができます。ランク制約は通常、エッジ制約よりも優先されます。
有効な対象- グラフ
注: dotのみ。
Graphvizのコードベースで"newrank"
を検索してください
nodesep
dot
では、nodesep
は、同じランクにある2つの隣接ノード間の最小スペースをインチ単位で指定します。type: 倍精度浮動小数点数、デフォルト: 0.25
、最小値: 0.02
他のレイアウトでは、nodesep
は、単一ノードのループ間、またはノードペア間のマルチエッジ間のスペースに影響します。
digraph {
nodesep=0.1;
node1; node2; node3;
}
digraph {
nodesep=0.5;
node1; node2; node3;
}
- グラフ
Graphvizのコードベースで"nodesep"
を検索してください
nojustify
型: bool、デフォルト: false
デフォルトでは、複数行のラベルの調整は、意味のある最大コンテキスト内で行われます。したがって、多角形ノードのラベルでは、左揃えの行はノードの左側に(指定されたmargin
だけシフトして)揃えられます。レコードノードでは、左揃えの行は、フィールドを含む列の左側に揃えられます。nojustify=true
の場合、複数行のラベルはそれ自体に関連するコンテキストで調整されます。
たとえば、nojustify
が設定され、最初のラベル行が長く、2番目が短く左揃えの場合、ノードのサイズに関係なく、2番目は最初の行の左端の文字に揃えられます。
\l
(左揃え)エスケープ文字列を含むこの例を参照してください。
digraph G {
node [width=3 shape=box]
a [nojustify=false label="The first line is longer\nnojustify=false\l"]
b [nojustify=true label="The first line is longer\nnojustify=true\l"]
a -> b
}
digraph G{
c [nojustify=false shape=record label="{Records Example - Long Line\n | Title - Shorter Line\nnojustify=false\l}"]
d [nojustify=true shape=record label="{Records Example - Long Line\n | Title - Shorter Line\nnojustify=true\l}"]
c -> d
}
- グラフ
- クラスタ
- ノード
- エッジ
Graphvizのコードベースで"nojustify"
を検索してください
normalize
type: 倍精度浮動小数点数 | ブール値、デフォルト: false
最初の点が原点に配置され、最初のエッジの角度が度数でnormalize
の値によって指定されるように、レイアウトを回転させます。
normalize
が数値でない場合、ブール値として評価され、true
は0
度に相当します。
注意: 属性は最初に数値として評価されるため、0
と1
はfalse
とtrue
には使用できません。
- グラフ
注: neato、fdp、sfdp、twopi、circoのみ。
Graphvizのコードベースで"normalize"
を検索してください
notranslate
型: bool、デフォルト: false
デフォルトでは、最終レイアウトは、境界ボックスの左下隅が原点になるように移動されます。
一部のノードが固定されている場合、またはユーザーがneato -n
を実行する場合、これは煩わしい場合があります。
この移動を回避するには、notranslate=true
を設定します。
- グラフ
注: neatoのみ。
Graphvizのコードベースで"notranslate"
を検索してください
nslimit
型: 倍精度浮動小数点数
nslimit
は、node x coordinates
の計算に使用されます。
定義されている場合、# iterations = nslimit * # nodes
。定義されていない場合、# iterations = INT_MAX
。
- グラフ
注: dotのみ。
Graphvizのコードベースで"nslimit"
を検索してください
nslimit1
型: 倍精度浮動小数点数
nslimit1
は、ノードのランキングに使用されます。
定義されている場合、# iterations = nslimit * # nodes
。定義されていない場合、# iterations = INT_MAX
。
- グラフ
注: dotのみ。
Graphvizのコードベースで"nslimit1"
を検索してください
oneblock
型: bool、デフォルト: false
同じグラフのレンダリングの2つの例を示します。
digraph G {
layout="circo"
oneblock=false
N0 -> N1
N1 -> N2
N2 -> N3
N3 -> N4
N4 -> N0
N4 -> N5
N5 -> N6
N6 -> N7
N7 -> N8
N8 -> N5
}
digraph G {
layout="circo"
oneblock=true
N0 -> N1
N1 -> N2
N2 -> N3
N3 -> N4
N4 -> N0
N4 -> N5
N5 -> N6
N6 -> N7
N7 -> N8
N8 -> N5
}
- グラフ
注: circo のみ。
Graphvizのコードベースで"oneblock"
を検索してください
ordering
型: string、デフォルト: ""
ordering="out"
の場合、ノードのアウトエッジ(ノードをテールノードとするエッジ)は、入力で定義されているのと同じ順序で左から右に表示される必要があります。
ordering="in"
の場合、ノードのインエッジは、入力で定義されているのと同じ順序で左から右に表示される必要があります。
グラフまたはサブグラフ属性として定義されている場合、その値はグラフまたはサブグラフ内のすべてのノードに適用されます。
グラフ属性はノード属性よりも優先されることに注意してください。
有効な対象- グラフ
- ノード
注: dotのみ。
Graphvizのコードベースで"ordering"
を検索してください
orientation
type: 倍精度浮動小数点数 | 文字列、デフォルト: 0.0
、""
、最小値: -360.0
ノードで使用する場合:多角形ノードシェイプを回転させる角度(度単位)。多角形の辺の数に関係なく、0度の回転では底辺が水平になります。グラフで使用する場合:"[lL]*"
の場合、グラフの方向を横向きに設定します。
rotate
が定義されていない場合にのみ使用されます。
digraph {
layout=neato # Render in a circular layout
node [shape=house] # Make all nodes have 'house' shape
0 [orientation=0]
45 [orientation=45]
90 [orientation=90]
135 [orientation=135]
180 [orientation=180]
225 [orientation=225]
270 [orientation=270]
315 [orientation=315]
0 -> 45 -> 90 -> 135 -> 180 -> 225 -> 270 -> 315 -> 0
}
digraph {
orientation=L
a -> b
}
関連項目
有効な対象- ノード
- グラフ
Graphvizのコードベースで"orientation"
を検索してください
outputorder
type: 出力モード、デフォルト: breadthfirst
- グラフ
Graphvizのコードベースで"outputorder"
を検索してください
overlap
ノードはまずsep
属性を使用して拡大されます。true
の場合、重なりは維持されます。値が"scale"
の場合、xとyを均一にスケーリングすることで重なりが削除されます。値が"false"
に変換され、利用可能な場合、近接グラフベースのアルゴリズムであるPrismを使用してノードの重なりが削除されます。これは、overlap=prism
を使用して明示的に呼び出すこともできます。この手法は、overlap_scaling
属性によって制御される小さなスケーリングアップから開始し、重なりのかなりの部分を削除できます。prismオプションは、オプションの非負の整数サフィックスも受け入れます。これは、重なり除去の試行回数を制御するために使用できます。デフォルトでは、overlap="prism"
はoverlap="prism1000"
と同等です。overlap="prism0"
を設定すると、スケーリングフェーズのみが実行されます。
Prismが利用できない場合、またはGraphvizのバージョンが2.28より前の場合、"overlap=false"
はVoronoiベースの手法を使用します。これは、"overlap=voronoi"
を使用して明示的に呼び出すことができます。
overlap="scalexy"
の場合、xとyは個別にスケーリングされて重なりが削除されます。
overlap="compress"
の場合、レイアウトは、重なりが導入されることなく、可能な限り縮小されます。もちろん、最初から重なりがないことを前提としています。
注記 overlap
の残りの許容値は、現在、アスペクト比が悪くなる可能性のあるアルゴリズムに対応しています。さらに、"ortho*"
と"portho*"
の使用は非推奨です。
値が"vpsc"
の場合、重なり除去は、ノードの重なりを削除しながらノードの変位を最小限にする二次最適化として行われます。
値が"orthoxy"
または"orthoyx"
の場合、重なりは、x軸とy軸の2つの制約問題を最適化することで移動されます。サフィックスは、最初に処理される軸を示します。値が"ortho"の場合、手法は"orthoxy"に似ていますが、2つのパス間のバイアスを減らすヒューリスティックが使用されます。値が"ortho_yx"
の場合、手法は"ortho"
と同じですが、xとyの役割が逆になります。値"portho"
、"porthoxy"
、"porthoxy"
、および"portho_yx"
は、前の4つの値に似ていますが、擬似直交順序のみが適用されます。
mode="ipsep"
を使用してneatoによってレイアウトが行われた場合、overlap=ipsep
を使用できます。この場合、重なり除去の制約はレイアウトアルゴリズム自体に組み込まれます。注:現時点では、1レベルのクラスタリングのみをサポートしています。
fdp
とsfdp
を除き、レイアウトはデフォルトでoverlap="true"
を想定しています。Fdpはまず、組み込みのフォースディレクテッド手法を用いた複数のパスの処理を行い、重なりを解消しようとします。そのため、fdp
は整数プレフィックスにコロンをつけたoverlap
を受け付け、試行回数を指定します。プレフィックスがない場合、初期試行は実行されません。コロンの後に何もない場合、上記のいずれの方法も試行されません。デフォルトでは、fdp
はoverlap="9:prism"
を使用します。overlap="true"
、overlap="0:true"
、overlap="0:"
はすべて、重なり除去を無効にすることに注意してください。
デフォルトで、sfdp
はoverlap="prism0"
を使用します。
Voronoi法とprism法を除き、これらの変換は元のレイアウトの直交順序を保持します。つまり、2つのノードのx座標が元々同じであれば、同じままになり、一方のノードのx座標が元々もう一方のノードのx座標より小さければ、この関係は変換後のレイアウトでも維持されます。y座標についても同様の性質が成り立ちます。これは"porth*"
の場合には完全に当てはまりません。これらの場合、直交順序はエッジで関連付けられたノード間でのみ保持されます。
- グラフ
注: fdp、neato、sfdp、circo、twopiのみ。
Graphvizのコードベースで"overlap"
を検索してください
overlap_scaling
型: double、デフォルト: -4
、最小値: -1e+10
overlap=prism
の場合、レイアウトはこの係数でスケーリングされ、ノードの重なりがかなり解消され、ノードの重なり除去が高速化され、グラフの形状を維持する能力が向上します。
-
overlap_scaling
が負の場合、レイアウトは平均ラベルサイズの-1*overlap_scaling
倍にスケーリングされます。 -
overlap_scaling
が正の場合、レイアウトはoverlap_scaling
倍にスケーリングされます。 -
overlap_scaling
が0の場合、スケーリングは行われません。
- グラフ
注: prism、neato、sfdp、fdp、circo、twopiのみ。
Graphvizのコードベースで"overlap_scaling"
を検索してください
overlap_shrink
型: bool、デフォルト: true
- グラフ
注: prismのみ。
Graphvizのコードベースで"overlap_shrink"
を検索してください
pack
pack
が整数値を持つ場合、これは各部分の周りのマージンサイズ(ポイント単位)として使用されます。それ以外の場合は、デフォルトのマージン8
が使用されます。
pack
がfalse
として解釈される場合、グラフ全体がまとめてレイアウトされます。パッキングの粒度と方法は、packmode
属性によって影響を受けます。
twopi
など、常にパッキングを行うレイアウトでは、pack
属性はマージンの設定のみに使用されます。
pack
の値がtrue
(大文字と小文字を区別しない)または非負の整数の場合、pack
はtrueとして扱われます。
- グラフ
Graphvizのコードベースで"pack"
を検索してください
packmode
型: packMode、デフォルト: node
(packMode
を参照)。packmode
を定義すると、pack=true
を設定した場合と同様に、自動的にパッキングが有効になります。
- グラフ
Graphvizのコードベースで"packmode"
を検索してください
pad
型: double | point、デフォルト: 0.0555
(4ポイント)
pad
が単一のdoubleの場合、xとyの両方のpad値は指定された値に設定されます。この領域は描画の一部であり、必要に応じて背景色で塗りつぶされます。
通常、特に背景色を使用する場合、ノードやエッジが描画領域の境界に接することを避けるために、美的理由から小さなpad
が使用されます。
- グラフ
Graphvizのコードベースで"pad"
を検索してください
page
値が1つだけ指定されている場合、これは幅と高さの両方に使用されます。
page
が設定されていて、レイアウトのサイズよりも小さい場合、指定されたページサイズの矩形配列のページがレイアウト上に重ねられ、原点が左下隅に揃えられ、レイアウトがページに分割されます。次に、ページはpagedir
の順序で1つずつ生成されます。
現時点では、page
はPostScript出力でのみ機能します。他のタイプの出力では、別のツールを使用して出力を複数の出力ファイルに分割するか、viewport
を使用して複数のファイルを作成します。
- グラフ
Graphvizのコードベースで"page"
を検索してください
pagedir
型: pagedir、デフォルト: BL
page
が設定されていて適用可能な場合にのみ使用されます。
8つの行または列の主要な順序のいずれかに限定されます。
有効な対象- グラフ
Graphvizのコードベースで"pagedir"
を検索してください
pencolor
タイプ: color、デフォルト: black
pencolor
が定義されていない場合、color
が使用されます。
color
が定義されていない場合、bgcolor
が使用されます。
bgcolor
が定義されていない場合、デフォルトが使用されます。
クラスタは、定義されている場合、ルートグラフの属性を継承することに注意してください。したがって、ルートグラフでpencolor
が定義されている場合、これはクラスタに対して設定されたcolor
またはbgcolor
属性をオーバーライドします。
- クラスタ
Graphvizのコードベースで"pencolor"
を検索してください
penwidth
型: double、デフォルト: 1.0
、最小値: 0.0
エッジとクラスタの境界を含みます。
penwidth
の値はサブクラスタによって継承され、テキストには影響しません。
2008年1月31日以前は、penwidth=W
の効果は、style
仕様の一部としてsetlinewidth(W)
を含めることで実現されていました。
両方の属性が設定されている場合、penwidth
が使用されます。
- クラスタ
- ノード
- エッジ
Graphvizのコードベースで"penwidth"
を検索してください
peripheries
型: int、デフォルト: <shape default>
(ノード)、1
(クラスタ)、最小値: 0
ユーザー定義の形状はボックス形状の一種として扱われるため、デフォルトの周辺部の値は1であり、ユーザー定義の形状はバウンディング矩形内に描画されます。peripheries=0
を設定すると、これが無効になります。
peripheries=1
はクラスタの最大値です。
- ノード
- クラスタ
Graphvizのコードベースで"peripheries"
を検索してください
pin
型: bool、デフォルト: false
trueの場合、ノードに入力時にpos
属性がある場合、neato
またはfdp
はノードが入力位置から移動するのを防ぎます。このプロパティは、pos
属性自体でも指定できます(point型を参照)。
注: 実装のアーティファクトにより、2014年2月27日以前は、最終座標が原点に変換されていました。そのため、(x)dot形式またはプレーン形式で出力された座標を見ると、固定されたノードは入力時に与えられたものと同じ出力座標を持ちません。これが重要な場合、簡単な回避策は固定されたノードの座標を維持することです。古い座標と新しい座標のベクトル差は変換を与え、これはすべての適切な座標から減算できます。
2014年2月27日以降、neato
ではnotranslate=true
を設定することで、この変換を回避できます。ただし、グラフでノードの重なり除去またはアスペクト比の変更ratio
が指定されている場合、ノード座標は変更される可能性があります。
- ノード
Graphvizのコードベースで"pin"
を検索してください
pos
型: point | splineType
ノードの場合、位置はノードの中心を示します。出力では、座標はポイント単位です。
neato
とfdp
では、pos
を使用してノードの初期位置を設定できます。デフォルトでは、座標はインチ単位と見なされます。ただし、-s
コマンドラインフラグを使用して異なる単位を指定できます。出力座標はポイント単位であるため、Graphvizプログラムによってレイアウトされたグラフの出力をneato
またはfdp
に供給する場合、ほとんどの場合-s
フラグが必要です。
-n
コマンドラインフラグがneato
で使用されている場合、位置はレイアウトプログラムのいずれかによって設定されており、ポイント単位であると見なされます。したがって、neato -n
は-s
フラグを必要とせずに正しく入力を受け入れることができ、実際にはそのようなフラグを無視します。
- エッジ
- ノード
Graphvizのコードベースで"pos"
を検索してください
quadtree
型: quadType | bool、デフォルト: normal
quadtree=true
はquadtree=normal
と同じです。quadtree=false
はquadtree=none
と同じです。quadtree=2
はquadtree=fast
と同じです。
- グラフ
注:sfdpのみ。
Graphvizのコードベースで"quadtree"
を検索してください
quantum
quantum > 0.0
の場合、ノードラベルの寸法はquantumの整数倍に丸められます。型: double、デフォルト: 0.0
、最小値: 0.0
- グラフ
Graphvizのコードベースで"quantum"
を検索してください
rank
型: rankType
rank="same"
の場合、すべてのノードは同じランクに配置されます。rank="min"
の場合、すべてのノードは最小ランクに配置されます。rank="source"
の場合、すべてのノードは最小ランクに配置され、最小ランクにあるノードはrank="source"
またはrank="min"
を持つサブグラフに属します。
rank="max"
とrank="sink"
についても同様の基準が当てはまります。
(注: 最小ランクは最上部または左端、最大ランクは最下部または右端です。)
詳細については、Stack Overflowのこの回答を参照してください。
有効な対象- サブグラフ
注: dotのみ。
Graphvizのコードベースで"rank"
を検索してください
rankdir
型: rankdir、デフォルト: TB
たとえば、rankdir="LR"
の場合、サイクルがない限り、エッジT -> H;
は左から右に配置されます。デフォルトでは、グラフは上から下にレイアウトされます。
この属性は、レコードノードの解釈方法を決定することにも副作用があります。レコード形状を参照してください。
digraph {
rankdir="TB"
a -> b -> c;
}
digraph {
rankdir="BT"
a -> b -> c;
}
digraph {
rankdir="LR"
a -> b -> c;
}
digraph {
rankdir="RL"
a -> b -> c;
}
- グラフ
注: dotのみ。
Graphvizのコードベースで"rankdir"
を検索してください
ranksep
型: double | doubleList、デフォルト: 0.5
(dot) 、1.0
(twopi) 、最小値: 0.02
dot
では、ノード間の希望ランク間隔をインチ単位で設定します。
これは、あるランクのノードの下端と次のランクのノードの上端間の最小垂直距離です。値にequally
が含まれる場合、すべてのランクの中心が均等に間隔をあけて配置されます。例えば、ranksep="1.2 equally"
のように、両方の設定が可能です。
twopi
では、この属性は同心円の半径間隔を指定します。twopi
の場合、ranksep
はdoubleのリストにもできます。最初のdoubleは内円の半径を、2番目のdoubleは最初の円から2番目の円への半径増加分を指定します。円の数よりも数が少ない場合、最後の数が残りの増分として使用されます。
- グラフ
ratio
これは、size
属性の制約が適用される前に調整されることに注意してください。
さらに、計算では通常ノードのサイズが無視されるため、最終的な描画サイズは希望するサイズとほぼ一致するだけです。
ratio
が数値の場合、ratio
は希望のアスペクト比として扱われます。その後、実際のアスペクト比が希望の比率よりも小さい場合、描画の高さが拡大されて希望の比率が達成されます。実際のアスペクト比が希望の比率よりも大きい場合、描画の幅が拡大されます。
ratio="fill"
でsize
属性が設定されている場合、ノードの位置はxとyの両方で個別にスケーリングされ、最終的な描画が指定されたサイズを正確に満たすようになります。両方のsize
値が描画の幅と高さよりも大きい場合、各ノードの両方の座標値がそれに応じて拡大されます。ただし、いずれかのサイズ寸法が描画の対応する寸法よりも小さい場合、最終的な描画がsize
で指定されたものと同じアスペクト比を持つように、一方の寸法が拡大されます。次に、レンダリングされると、レイアウトは両方の寸法で均一に縮小されて指定されたsize
に適合しますが、これによりノードとテキストも縮小される可能性があります。これはユーザーが望むものではないかもしれませんが、描画サイズを縮小するためにノードを許容できる方法で再配置するという難しい問題を回避します。
ratio="compress"
でsize
属性が設定されている場合、dotは初期レイアウトを圧縮して指定されたサイズに適合させようとします。これにより、ノードのパッキングがより緊密になりますが、バランスと対称性が低下します。この機能はdotでのみ動作します。
ratio="expand"
の場合、size
属性が設定され、グラフの幅と高さが両方ともsize
の値よりも小さい場合、少なくとも1つの寸法がsize
に正確に適合するまで、ノードの位置が均一に拡大されます。これは、size
を希望のサイズとして使用するとは異なることに注意してください。ここでは、エッジが生成される前に描画が拡大され、すべてのノードとテキストのサイズは変更されません。
ratio="auto"
の場合、page
属性が設定され、グラフを1ページに描画できない場合、size
は「理想的な」値に設定されます。
具体的には、特定の寸法のサイズは、その寸法のページサイズの最小の整数倍であり、現在のサイズの少なくとも半分になります。次に、2つの寸法は新しいサイズに個別にスケーリングされます。この機能はdot
でのみ動作します。
- グラフ
rects
型: rect
有効な対象- ノード
注:書き込み専用。
regular
型: bool、デフォルト: false
trueの場合、ポリゴンの頂点は、ノードの中心を中心とする円上に位置します。
digraph {
"pentagon1" [shape="pentagon"];
"pentagon2" [shape="pentagon" regular=true]
"hexagon1" [shape="hexagon"];
"hexagon2" [shape="hexagon" regular=true];
}
- ノード
remincross
型: bool、デフォルト: true
- グラフ
注: dotのみ。
Graphvizコードベースで"remincross"
を検索
repulsiveforce
型: double、デフォルト: 1.0
、最小値: 0.0
力誘導モデル。1
より大きい値は、クラスタリングが少ないという代償を払って、歪み効果を軽減する傾向があります。
- グラフ
注:sfdpのみ。
Graphvizコードベースで"repulsiveforce"
を検索
resolution
dpi
の同義語。型: double、デフォルト: 96.0
、0.0
- グラフ
注: bitmap出力、svgのみ。
Graphvizコードベースで"resolution"
を検索
root
型: string | bool、デフォルト: <none>
(グラフ) 、false
(ノード)
レイアウトの中心は、生成されたスパニングツリーのルートになります。
- グラフ属性として、ノードの名前を指定します。
- ノード属性として、そのノードを中心ノードとして使用する必要があることを指定します。
twopi
では、root
は実際には中心ノードになります。circo
では、ノードを含むブロックが接続されたコンポーネントの描画の中心になります。定義されていない場合、twopi
は最も中心的なノードを選択し、circo
はランダムなノードを選択します。
ルート属性が空の文字列として定義されている場合、twopi
はルートノードとして選択されたノードの名前にリセットします。
twopi
では、おそらくコンポーネントごとに1つずつ、複数のルートを持つことができます。コンポーネント内の複数のノードがroot
としてマークされている場合、twopi
は1つを選択します。
- グラフ
- ノード
rotate
rotate=90
の場合、描画の方向を横向きに設定します。型: int、デフォルト: 0
digraph {
rotate=90
a -> b
}
関連項目
有効な対象- グラフ
rotation
型: double、デフォルト: 0
- グラフ
注:sfdpのみ。
samehead
samehead
値を持つエッジは、ヘッド上の同じ点を指します。型: string、デフォルト: ""
ループには影響しません。
Graphviz 8.0.1より前では、各ノードは最大5つの異なるsamehead
値を持つことができます。
制限事項を参照してください。
sametail
も参照してください。
- エッジ
注: dotのみ。
sametail
sametail
値を持つエッジは、テールの同じ点を指します。型: string、デフォルト: ""
ループには影響しません。
Graphviz 8.0.1より前では、各ノードは最大5つの異なるsametail
値を持つことができます。
制限事項を参照してください。
samehead
も参照してください。
- エッジ
注: dotのみ。
samplepoints
型: int、デフォルト: 8
(出力) 、20
(オーバーラップとイメージマップ)
入力グラフがvertices
属性を定義し、出力がdot
またはxdot
の場合に使用されます。
オーバーラップするノードを回避するためにレイアウトを調整する場合、neato
でも同じ役割を果たし、イメージマップでも同じ役割を果たします。
- ノード
Graphvizコードベースで"samplepoints"
を検索
scale
1つの数値のみが指定されている場合、その数値は幅と高さを両方ともスケーリングします。
有効な対象- グラフ
searchsize
型: int、デフォルト: 30
- グラフ
注: dotのみ。
Graphvizコードベースで"searchsize"
を検索
sep
型: addDouble | addPoint、デフォルト: +4
これにより、ノード間の最小の非ゼロ距離が保証されます。
属性がプラス記号'+'
で始まる場合、加算マージンが指定されます。つまり、"+w,h"
は、ノードのバウンディングボックスを左右でw
ポイント、上下でh
ポイント増加させます。
プラス記号がない場合、ノードはx座標で1 + w
、y座標で1 + h
スケーリングされます。
1つの数値のみが指定されている場合、これは両方の寸法に使用されます。
設定されていないがesep
が定義されている場合、sep
値はesep
値を0.8
で割った値に設定されます。esep
が設定されていない場合、デフォルト値が使用されます。
graph {
layout="fdp"
sep="0"
A -- B
B -- C
C -- D
D -- A
}
graph {
layout="fdp"
sep="3"
A -- B
B -- C
C -- D
D -- A
}
- グラフ
注: fdp、neato、sfdp、osage、circo、twopiのみ。
shape
型: shape、デフォルト: ellipse
digraph {
"pentagon" [shape="pentagon"];
"hexagon" [shape="hexagon"];
}
- ノード
shapefile
型: string、デフォルト: ""
(非推奨).
ノードのshape="box"
を設定します。シェイプファイル内の画像は長方形でなければなりません。サポートされているイメージ形式とファイルの使用方法の正確なセマンティクスは、出力形式によって異なります。詳細については、イメージ形式と外部PostScriptファイルを参照してください。
この使用方法には1つの例外があります。shape="epsf"
の場合、shapefile
はPostScriptでノードの定義を含むファイル名を指定します。定義されたグラフィックには、必要な境界を含むすべてのノードコンテンツが含まれている必要があります。詳細については、外部PostScriptファイルを参照してください。
ローカルリソースへのパスのみがサポートされています。リモートリソースへのURLを使用する場合は、dot_url_resolve.py
スクリプトを参照してください。
- ノード
showboxes
タイプ: int、デフォルト: 0
、最小値: 0
showboxes=1
の場合、routesplinesの先頭に、showboxes=2
の場合、最後に、PostScriptでガイドボックスを出力します。(デバッグ、TBモードのみ!)
- エッジ
- ノード
- グラフ
注: dotのみ。
sides
shape=polygon
の場合の辺の数型: int、デフォルト: 4
、最小値: 0
graph {
Triangle [shape=polygon sides=3]
Rectangle [shape=polygon sides=4]
Pentagon [shape=polygon sides=5]
Hexagon [shape=polygon sides=6]
}
- ノード
size
数値を1つだけ指定した場合、幅と高さの両方に使用されます。
指定されており、図面が指定されたサイズよりも大きい場合、図面は均一に縮小されて、指定されたサイズ内に収まるようになります。
size
が感嘆符"!"
で終わる場合、size
は必要な最小サイズとして扱われます。この場合、図面の両方の寸法がsize
よりも小さい場合、少なくとも一方の寸法がsize
の対応する寸法に等しくなるまで、図面は均一に拡大されます。
size
属性とratio
属性の間には、ある程度の相互作用があります。
- グラフ
skew
shape=polygon
のためのスキュー係数型: double、デフォルト: 0.0
、最小値: -100.0
正の値は多角形の上部を右に、負の値は左に傾けます。
distortion
も参照してください。
graph {
SkewLeft [shape=polygon sides=4 skew=-.5]
SkewRight [shape=polygon sides=4 skew=.5]
}
- ノード
smoothing
型: smoothType、デフォルト: "none"
- グラフ
注:sfdpのみ。
sortv
packmode
によるパッキングのためのグラフコンポーネントのソート順序。タイプ: int、デフォルト: 0
、最小値: 0
packmode
が配列パッキングを示している場合、sortv
はコンポーネント間の挿入順序を指定し、値が小さい方が先に挿入されます。
- グラフ
- クラスタ
- ノード
splines
splines=true
の場合、エッジはノードの周囲にルーティングされたスプラインとして描画されます。splines=false
の場合、エッジは線分として描画されます。splines=none
またはsplines=""
の場合、エッジはまったく描画されません。
(2007年3月1日) splines=line
とsplines=spline
は、それぞれsplines=false
とsplines=true
の同義語として使用できます。
さらに、splines=polyline
は、エッジを折れ線として描画する必要があることを指定します。
(2010年9月28日) splines=ortho
は、エッジを軸に整列したセグメントの折れ線としてルーティングする必要があることを指定します。現在、ルーティングはポート、またはdotの場合のエッジラベルを処理しません。
(2012年9月25日) splines=curved
は、エッジを湾曲した弧として描画する必要があることを指定します。
![]() |
![]() |
splines=none splines="" |
splines=line splines=false |
![]() |
![]() |
splines=polyline | splines=curved |
![]() |
![]() |
splines=ortho | splines=spline splines=true |
デフォルトでは、splines
は設定されていません。これがどのように解釈されるかは、レイアウトエンジンによって異なります。dot
の場合、デフォルトではエッジをスプラインとして描画します。他のすべてのレイアウトでは、デフォルトではエッジを線分として描画します。
これらの後者のレイアウトでは、splines="true"
の場合、ノードが重ならないことが必要です(overlap
を参照)。fdp
をレイアウトに使用し、splines="compound"
の場合、エッジはノードだけでなくクラスタも避けて描画されます。
- グラフ
start
型: startType、デフォルト: ""
設定されていない場合、ノードは単位正方形内にランダムに配置されます。同じシードが常に乱数生成器に使用されるため、初期配置は再現可能です。
次の例は同じグラフですが、start
の値が異なるため、レンダリングが異なります。
graph {
layout="fdp"
start=1
A -- B; B -- C; C -- D; D -- A
}
graph {
layout="fdp"
start=2
A -- B; B -- C; C -- D; D -- A
}
- グラフ
style
型: style、デフォルト: ""
クラスタサブグラフの場合、style="filled"
の場合、クラスタボックスの背景が塗りつぶされます。
コンポーネントのデフォルトのスタイル属性が設定されている場合、個々のコンポーネントはstyle=""
を使用して通常のデフォルトに戻すことができます。たとえば、グラフが
digraph {
edge [style="invis"]
a -> b
}
すべてのエッジを非表示にする場合、b->c
エッジはこれに対して次のようにオーバーライドできます。
digraph {
edge [style="invis"]
a -> b
b -> c [style=""]
}
もちろん、コンポーネントはstyle
属性を目的の値に明示的に設定することもできます。
- エッジ
- ノード
- クラスタ
- グラフ
stylesheet
型: string、デフォルト: ""
CSSセレクタを使用して要素をスタイル設定するには、class
と組み合わせて使用します。
関連項目
有効な対象- グラフ
注:svgのみ。
Graphvizコードベースで"stylesheet"
を検索
tail_lp
タイプ: point
位置はラベルの中心を示します。
有効な対象- エッジ
注:書き込み専用。
tailclip
型: bool、デフォルト: true
それ以外の場合は、エッジの端はノードの中心、または該当する場合はポートの中心になります。
有効な対象- エッジ
tailhref
tailURL
の同義語。型: escString、デフォルト: ""
関連項目
有効な対象- エッジ
注: map、svgのみ。
taillabel
タイプ: lblString、デフォルト: ""
制限事項を参照してください。
有効な対象- エッジ
tailport
タイプ: portPos、デフォルト: center
制限事項を参照してください。
有効な対象- エッジ
tailtarget
tailURL
リンクに使用するブラウザウィンドウ型: escString、デフォルト: <none>
エッジにtailURL
がある場合、tailtarget
は、URLに使用するブラウザのウィンドウを決定します。
tailtarget=_graphviz
を設定すると、存在しない場合は新しいウィンドウが開き、存在する場合は再利用されます。
未定義の場合、target
の値が使用されます。
- エッジ
注: map、svgのみ。
Graphvizコードベースで"tailtarget"
を検索
tailtooltip
型: escString、デフォルト: ""
エッジにtailURL
属性がある場合にのみ使用されます。
- エッジ
Graphvizコードベースで"tailtooltip"
を検索
tailURL
tailURL
はエッジのテールラベルの一部として出力されます。型: escString、デフォルト: ""
また、この値はテールのノード付近で使用され、URL
の値をオーバーライドします。
制限事項を参照してください。
関連項目
有効な対象- エッジ
注: map、svgのみ。
target
URL
がある場合、この属性はURLに使用するブラウザのウィンドウを決定します。型: escString | string、デフォルト: <none>
W3Cドキュメントを参照してください。
有効な対象- エッジ
- ノード
- グラフ
- クラスタ
注: map、svgのみ。
TBbalance
型: string、デフォルト: ''
有効なオプション
名前がTBbalance
(「トップボトムバランス」)であるにもかかわらず、これは左右のランクでも機能します(例:rankdir=LR
)。
例
digraph {
layout="dot"
{ rank="min"; "min" }
{ rank="max"; "max" }
"min" -> "middle" -> "max"
"Floater 1"
"Floater 2"
}
digraph {
layout="dot"
TBbalance="min"
{ rank="min"; "min" }
{ rank="max"; "max" }
"min" -> "middle" -> "max"
"Floater 1"
"Floater 2"
}
digraph {
layout="dot"
TBbalance="max"
{ rank="min"; "min" }
{ rank="max"; "max" }
"min" -> "middle" -> "max"
"Floater 1"
"Floater 2"
}
- グラフ
注: dotのみ。
tooltip
型: escString、デフォルト: ""
tooltip
が設定されていない場合、Graphvizは定義されている場合はオブジェクトのlabel
を使用します。
label
がレコード仕様またはHTMLのようなラベルである場合、結果のツールチップは役に立たない場合があります。この場合、ツールチップが生成される場合は、ユーザーがtooltip
属性を明示的に設定する必要があります。
digraph {
label="Graph Label"
tooltip="Graph Tooltip"
subgraph cluster_a {
label="Cluster Label"
tooltip="Cluster Tooltip"
Node1 [tooltip="Node1 Tooltip"]
Node1 -> Node2 [label="Edge" tooltip="Edge Tooltip"]
}
}
関連項目
有効な対象- ノード
- エッジ
- クラスタ
- グラフ
truecolor
型: bool
カラーパレットを使用するか。
truecolor
が設定されていない場合、グラフ内のいくつかのノードにshapefile
プロパティがない限り、truecolor
は使用されません。出力モデルは可能な限り入力モデルを使用します。
カラーパレットを使用すると、ビットマップの作成時のメモリ使用量が減り、出力ファイルのサイズが小さくなります。
通常、truecolor
モデルを指定する必要があるのは、グラフが256色を超える場合のみです。ただし、カラーパレットでbgcolor=transparent
を使用する場合、フォントアンチエイリアシングが文字の周囲のぼやけた白い領域として表示される場合があります。truecolor=true
を使用すると、この問題を回避できます。
- グラフ
注:ビットマップ出力のみ。
URL
型: escString、デフォルト: <none>
現在、ps2
、cmap
、i*map
、svg
形式で使用されています。これらのすべての形式では、URLをノード、エッジ、およびクラスタに添付できます。URL属性は、ps2
、cmap
、i*map
形式のルートグラフにも添付できます。これは、前者では相対URLの基本URLとして、後者ではデフォルトのイメージマップファイルとして機能します。
svg
、cmapx
、imap
出力の場合、ノードのアクティブ領域は表示されている画像です。たとえば、境界が描画されていない塗りつぶされていないノードは、ラベルでのみアクティブになります。その他の出力では、アクティブ領域はバウンディングボックスです。クラスタのアクティブ領域は、そのバウンディングボックスです。エッジの場合、アクティブ領域はエッジがヘッドノードとテールノードに接触する小さな円です。さらに、svg
、cmapx
、imap
では、アクティブ領域にはエッジを近似する細いポリゴンが含まれています。円は関連するノードと重なる可能性があり、エッジのURLが優先されます。エッジにラベルがある場合、これもアクティブになります。最後に、エッジにヘッドラベルまたはテールラベルがある場合、これもアクティブになります。
エッジの場合、属性headURL
、tailURL
、labelURL
、edgeURL
により、エッジのさまざまな部分を制御できます。
2つのエッジのアクティブ領域が重なる場合、どの領域が優先されるかは指定されていません。
関連項目
graph {
label="Vincent van Gogh Paintings"
URL="https://en.wikipedia.org/wiki/Vincent_van_Gogh"
subgraph cluster_self_portraits {
URL="https://en.wikipedia.org/wiki/Portraits_of_Vincent_van_Gogh"
label="Self-portraits"
"Self-Portrait with Grey Felt Hat" [URL="https://www.vangoghmuseum.nl/en/collection/s0016V1962"]
"Self-Portrait as a Painter" [URL="https://www.vangoghmuseum.nl/en/collection/s0022V1962"]
}
subgraph cluster_flowers {
URL="https://en.wikipedia.org/wiki/Sunflowers_(Van_Gogh_series)"
label="Flowers"
"Sunflowers" [URL="https://www.nationalgallery.org.uk/paintings/vincent-van-gogh-sunflowers"]
"Almond Blossom" [URL="https://www.vangoghmuseum.nl/en/collection/s0176V1962"]
}
}
- エッジ
- ノード
- グラフ
- クラスタ
注記:map、postscript、svgのみ。
vertices
型: pointList
ノードが多角形で、出力がdot
またはxdot
の場合に使用されます。
ノードが楕円または円の場合、samplepoints
属性が出力に影響します。
- ノード
注:書き込み専用。
viewport
型: viewPort、デフォルト: ""
viewport
は、size
属性を優先します。ビューポートの幅と高さは、出力の最終サイズを正確に指定します。
- グラフ
voro_margin
型: double、デフォルト: 0.05
、最小値: 0.0
ボロノイ技法での拡張のためのマージンを許容するために図面を拡大する係数。dim' = (1+2*margin)*dim
。
- グラフ
注: neato、fdp、sfdp、twopi、circoのみ。
Graphvizコードベースで"voro_margin"
を検索
weight
型: int | double、デフォルト: 1
、最小値: 0(dot,twopi)
、1(neato,fdp)
dot
では、重みが重いほど、エッジは短く、まっすぐになり、より垂直になります。
twopi
の場合、weight=0
は、ルートからのスパニングツリー構築において、そのエッジを使用しないことを示します。
その他のレイアウトでは、重みが大きいほど、レイアウトはエッジの長さをlen
属性で指定された長さに近づけようとします。
dot
における重みは整数でなければなりません。
digraph {
root -> a
root -> b [weight=2]
root -> c [weight=3]
}
- エッジ
Graphvizのコードベースで"weight"
を検索してください
width
型: double、デフォルト: 0.75
、最小値: 0.01
これはノードの初期の最小幅として扱われます。fixedsize
がtrueの場合、これがノードの最終的な幅になります。そうでない場合、ノードラベルに収まるのに必要な幅が大きい場合、ラベルを含むようにノードの幅が増加します。
出力形式がdot
の場合、width
に与えられた値が最終的な値になります。
ノードシェイプが正方形の場合、幅と高さが同一になります。
- 幅または高さが明示的に設定されている場合、その値が使用されます。
- 幅と高さが両方とも明示的に設定されている場合、2つの値のうち大きい方が使用されます。
- どちらも明示的に設定されていない場合、2つのデフォルト値のうち小さい方が使用されます。
digraph {
"d" # default
"1in" [width=1]
"2in" [width=2]
}
- ノード
Graphvizのコードベースで"width"
を検索してください
xdotversion
xdot
のバージョンを決定します。型: string
xdot
出力でのみ使用されます。
設定されていない場合、graphvizは出力に使用されるxdot
バージョンをこの属性に設定します。
- グラフ
注: xdotのみ。
Graphvizのコードベースで"xdotversion"
を検索してください
xlabel
タイプ: lblString、デフォルト: ""
- ノードの場合、ラベルはノードの外側に、しかし近くに配置されます。
- エッジの場合、ラベルはエッジの中央近くに配置されます。これは、dotにおいて、エッジラベルの使用がレイアウトを歪めることがある問題を回避するのに役立ちます。
- その他のレイアウトでは、xlabel属性は
label
属性の同義語と見なすことができます。
これらのラベルは、すべてのノードとエッジが配置された後に追加されます。
ラベルは、ノードや他のラベルと重ならないように配置されます。これは、すべてのラベルを配置できない可能性があることを意味します。すべてのラベルの配置を強制するには、forcelabels=true
に設定します。
digraph {
"⚡" [xlabel="Sparks"]
"🔥" [xlabel="Fires"]
"⚡"->"🔥" [xlabel="Sometimes" label="Cause"]
}
- エッジ
- ノード
Graphvizのコードベースで"xlabel"
を検索してください
xlp
タイプ: point
位置はラベルの中心を示します。
有効な対象- ノード
- エッジ
注:書き込み専用。
Graphvizのコードベースで"xlp"
を検索してください
z
型: double、デフォルト: 0.0
、最小値: -MAXFLOAT
、-1000
非推奨: pos
属性とdimen
および/またはdim
を使用して寸法を指定してください。
グラフにdim
が3(またはそれ以上)に設定されている場合、neatoは、ノードのpos
属性も定義されている場合、その初期位置のz座標にノードのz
値を使用します。
入力にz
値が指定されていない場合でも、例えばnode[z=""]
を使用してノードのz
属性を宣言する必要があります。これにより、出力時にz値が取得されます。したがって、dim=3
を設定してもz
を宣言しないと、neato -Tvrml
はグラフを3Dでレイアウトしますが、レンダリングのためにレイアウトをxy平面に投影します。z
属性が宣言されている場合、最終的なレンダリングは3Dになります。
- ノード