属性

自定义 Graphviz 节点图形、子图和 集群 布局的说明。

下表描述了各种 Graphviz 工具使用的属性。表格给出了属性的名称、使用该属性的图形组件(节点、边等)以及属性的类型(表示该类型合法值的字符串)。在适用的情况下,表格还给出了属性的默认值、数值属性的最小允许设置,以及对使用属性的某些限制。

请注意,属性名称区分大小写。这通常也适用于属性值,除非另有说明。

所有 Graphviz 属性都由名称-值对指定。因此,要设置节点 abccolor,可以使用

digraph {
  abc [color = red]
}

类似地,要设置边 abc -> def 的箭头样式,可以使用

digraph {
  abc -> def [arrowhead = diamond]
}

有关属性设置的更多详细信息,请参阅 DOT 语言 的描述。

目前,大多数设备无关的单位要么是英寸,要么是 ,我们将其视为每英寸 72 点。

注意:某些属性,如 dirarrowtail,在 DOT 中与无向图一起使用时是模棱两可的,因为边的头和尾没有意义。根据惯例,无向边第一次出现时,DOT 解析器将分配左侧节点作为尾节点,右侧节点作为头节点。例如,边 A -- B 将具有尾部 A 和头部 B。用户有责任一致地处理此类边。如果边稍后以以下格式出现

graph {
  B -- A [taillabel = "tail"]
}

则绘制将把尾部标签附加到节点 A。为了避免在需要此类属性时可能出现混淆,建议用户使用有向图。如果必须使图形看起来像无向图,则可以使用 dirarrowtailarrowhead 属性来完成。

这些工具接受标准 C 表示形式的 intdouble 类型。对于 bool 类型,TRUE 值由 trueyes(不区分大小写)以及任何非零整数表示,FALSE 值由 falseno(不区分大小写)以及零表示。此外,还有各种专用类型,如 arrowTypecolorpointrankdir。这些类型的合法值在最后给出。

使用对象 列字段指示属性适用于哪些图形组件。

注释 字段中,只写 的注释表示属性用于输出,而不被任何布局程序使用或读取。

名称 使用对象 类型 默认值 最小值 描述,注释
_background 图形 xdot <none> 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 图形,集群 colorcolorList <none> 画布背景颜色。
center 图形 bool false 是否将图形居中于输出画布中。
charset 图形 string "UTF-8" 解释字符串输入作为文本标签时使用的字符编码。
class 边缘,节点,集群,图形 string "" 要附加到节点、边、图形或集群的 SVG 元素的类名。仅限 svg
cluster 集群,子图 bool false 子图是否为集群。
clusterrank 图形 clusterMode local 用于处理集群的模式。仅限 dot
color 边缘,节点,集群 colorcolorList black 图形的基本绘制颜色,而不是文本。
colorscheme 边缘,节点,集群,图形 string "" 颜色方案命名空间:解释颜色名称的上下文。
comment 边缘,节点,图形 string "" 注释被插入到输出中。
compound 图形 bool false 如果为真,则允许集群之间的边。仅限 dot
concentrate 图形 bool false 如果为真,则使用边集中器。
constraint 边缘 bool true 如果为假,则边不用于对节点进行排名。仅限 dot
Damping 图形 double 0.99 0.0 阻尼力运动的因子。仅限 neato
decorate 边缘 bool false 是否使用线将边标签连接到边。
defaultdist 图形 double 1+(avg. len)*sqrt(|V|) epsilon 不同连通分量中节点之间的距离。仅限 neato
dim 图形 int 2 2 设置用于布局的维数。仅限 neatofdpsfdp
dimen 图形 int 2 2 设置用于渲染的维数。仅限 neatofdpsfdp
dir 边缘 dirType forward(有向)
none(无向)
用于绘制箭头头的边缘类型。
diredgeconstraints 图形 字符串布尔值 false 是否将大多数边缘限制为指向下方。 仅限neato
distortion 节点 double 0.0 -100.0 shape=polygon 的扭曲因子。
dpi 图形 double 96.0
0.0
指定显示设备上每英寸的预期像素数。 位图输出,仅限svg
edgehref 边缘 escString "" edgeURL 的同义词。 地图,仅限svg
edgetarget 边缘 escString <none> 用于edgeURL 链接的浏览器窗口。 地图,仅限svg
edgetooltip 边缘 escString "" 附加到边缘非标签部分的工具提示注释。 仅限cmapsvg
edgeURL 边缘 escString "" 边缘非标签部分的链接。 地图,仅限svg
epsilon 图形 double .0001 * # 节点 (mode == KK)
.0001 (mode == major)
.01 (mode == sgd)
终止条件。 仅限neato
esep 图形 addDoubleaddPoint +3 用于样条边缘路由的,围绕多边形的边距。 仅限neatofdpsfdp,osage,circotwopi
fillcolor 节点,边缘,集群 colorcolorList lightgrey (节点)
black (集群)
用于填充节点或集群背景的颜色。
fixedsize 节点 布尔值字符串 false 是否使用指定的宽度和高度属性来选择节点大小(而不是调整大小以适合节点内容)。
fontcolor 边缘,节点,图形,集群 color black 用于文本的颜色。
fontname 边缘,节点,图形,集群 string "Times-Roman" 用于文本的字体。
fontnames 图形 string "" 允许用户控制在 SVG 输出中如何表示基本字体名称。 仅限svg
fontpath 图形 string <系统相关> libgd 用于搜索位图字体的目录列表。
fontsize 边缘,节点,图形,集群 double 14.0 1.0 文本使用的字体大小,以点为单位
forcelabels 图形 bool true 是否强制放置所有xlabels,即使它们重叠。
gradientangle 节点,集群,图形 int 0 0 如果使用渐变填充,则确定填充的角度。
group 节点 string "" 节点组的名称,用于捆绑边缘并避免交叉。 仅限dot
head_lp 边缘 point 边缘头部标签的中心位置。 仅写。
headclip 边缘 bool true 如果为真,则边缘的头部将被剪切到头部节点的边界。
headhref 边缘 escString "" headURL 的同义词。 地图,仅限svg
headlabel 边缘 lblString "" 要放置在边缘头部附近的文本标签。
headport 边缘 portPos center 指示在头部节点的哪个位置连接边缘的头部。
headtarget 边缘 escString <none> 用于headURL 链接的浏览器窗口。 地图,仅限svg
headtooltip 边缘 escString "" 附加到边缘头部的工具提示注释。 仅限cmapsvg
headURL 边缘 escString "" 如果已定义,则 headURL 将作为边缘头部标签的一部分输出。 地图,仅限svg
height 节点 double 0.5 0.02 节点的高度,以英寸为单位。
href 图形,集群,节点,边缘 escString "" URL 的同义词。 地图,仅限postscriptsvg
id 图形,集群,节点,边缘 escString "" 图形对象的标识符。 地图,仅限postscriptsvg
image 节点 string "" 给出包含要显示在节点内的图像的文件的名称。
imagepath 图形 string "" 要查找图像文件的目录列表。
imagepos 节点 string "mc" 控制图像在其包含节点内的位置。
imagescale 节点 布尔值字符串 false 控制图像如何填充其包含节点。
inputscale 图形 double <none> 缩放输入位置 以在长度单位之间进行转换。 仅限neatofdp
K 图形,集群 double 0.3 0 虚拟物理模型中使用的弹簧常数。 仅限fdpsfdp
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 如果为真,则允许边缘标签在位置上不太受约束。
labelfontcolor 边缘 color black 用于headlabeltaillabel 的颜色。
labelfontname 边缘 string "Times-Roman" headlabeltaillabel 的字体。
labelfontsize 边缘 double 14.0 1.0 headlabeltaillabel 的字体大小。
labelhref 边缘 escString "" labelURL 的同义词。 地图,仅限svg
labeljust 图形,集群 string "c" 图形和集群标签的对齐方式。
labelloc 节点,图形,集群 string "t" (集群)
"b" (根图形)
"c" (节点)
节点,根图形和集群的标签的垂直放置。
labeltarget 边缘 escString <none> 用于打开labelURL 链接的浏览器窗口。 地图,仅限svg
labeltooltip 边缘 escString "" 附加到边缘标签的工具提示注释。 仅限cmapsvg
labelURL 边缘 escString "" 如果已定义,则 labelURL 是用于边缘标签的链接。 地图,仅限svg
landscape 图形 bool false 如果为真,则图形将以横向模式呈现。
layer 边缘,节点,集群 layerRange "" 指定节点,边缘或集群所在的层。
layerlistsep 图形 string "," 用于将类型为layerRange 的属性拆分为范围列表的分隔符。
layers 图形 layerList "" 附加到图形的线性排序的层名称列表。
layerselect 图形 layerRange "" 选择要发出的层列表。
layersep 图形 string ":\t " 用于将layers 属性拆分为层名称列表的分隔符。
layout 图形 string "" 要使用的布局引擎
len 边缘 double 1.0 (neato)
0.3 (fdp)
首选的边缘长度,以英寸为单位。 仅限neatofdp
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 * # 节点 (mode == KK)
200 (mode == major)
30 (mode == sgd)
600 (fdp)
设置使用的迭代次数。 仅限neatofdp
mclimit 图形 double 1.0 最小交叉 (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 指定同一等级中两个相邻节点之间的最小间距,以英寸为单位。
nojustify 图形,集群,节点,边缘 bool false 是否将多行文本与前一行文本对齐(而不是与容器的侧面对齐)。
normalize 图形 双精度布尔值 false 规范化最终布局的坐标。 仅限neatofdpsfdptwopicirco
notranslate 图形 bool false 是否避免将布局转换为原点。 仅限neato
nslimit 图形 double 设置网络单纯形应用程序中的迭代次数。 仅限dot
nslimit1 图形 double 设置网络单纯形应用程序中的迭代次数。 仅限dot
oneblock 图形 bool false 是否将 circo 图形绘制在一个圆圈周围。 仅限circo
ordering 图形,节点 string "" 约束节点边缘的从左到右顺序。 仅限dot
orientation 节点,图形 双精度字符串 0.0
""
-360.0 节点形状旋转角度或图形方向。
outputorder 图形 outputMode breadthfirst 指定绘制节点和边缘的顺序。
overlap 图形 字符串布尔值 true 确定是否以及如何消除节点重叠。 仅限fdpneatosfdpcircotwopi
overlap_scaling 图形 double -4 -1e+10 按因子缩放布局,以减少节点重叠。 仅限prismneatosfdpfdpcircotwopi
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 将节点保持在给定的输入位置。 仅限neatofdp
pos 边缘,节点 样条类型 节点的位置或样条控制点。 仅限neatofdp
quadtree 图形 四叉树类型布尔值 normal 要使用的四叉树方案。 仅限sfdp
quantum 图形 double 0.0 0.0 如果 quantum > 0.0,则节点标签尺寸将四舍五入到 quantum 的整数倍数。
rank 子图 rankType 子图中节点的等级约束。 仅限dot
rankdir 图形 rankdir TB 设置图形布局的方向。 仅限dot
ranksep 图形 双精度双精度列表 0.5 (dot)
1.0 (twopi)
0.02 指定等级之间的间距。 仅限dottwopi
ratio 图形 双精度字符串 设置绘图的纵横比(绘图高度/绘图宽度)。
rects 节点 rect 记录字段的矩形,以点为单位。 仅写。
regular 节点 bool false 如果为真,则强制多边形为规则多边形。
remincross 图形 bool true 如果存在多个集群,是否应再次运行边缘交叉最小化。 仅限dot
repulsiveforce 图形 double 1.0 0.0 扩展 Fruchterman-Reingold 中使用的斥力的幂。 仅限sfdp
resolution 图形 double 96.0
0.0
dpi 的同义词。 位图输出,仅限svg
root 图形,节点 字符串布尔值 <无> (图形)
false (节点)
指定用作布局中心的节点。 仅限twopicirco
rotate 图形 int 0 如果 rotate=90,则将绘图方向设置为横向。
rotation 图形 double 0 按指定度数逆时针旋转最终布局。 仅限sfdp
samehead 边缘 string "" 具有相同头部和相同 samehead 值的边缘都指向头部上的同一点。 仅限dot
sametail 边缘 string "" 具有相同尾部和相同sametail值的边指向尾部的同一点。 仅限 dot
samplepoints 节点 int 8(输出)
20(重叠和图像地图)
给出用于圆形/椭圆形节点的点数。
scale 图形 双精度 在初始布局之后,根据给定因子缩放布局。 仅限 neatotwopi
searchsize 图形 int 30 在网络单纯形期间,在寻找具有最小割值的边时,要搜索的具有负割值的边的最大数量。 仅限 dot
sep 图形 addDoubleaddPoint +4 在移除节点重叠时,在节点周围留出的边距。 仅限 fdpneatosfdp、osage、circotwopi
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 "" 用于确定节点初始布局的参数。 仅限 neatofdpsfdp
style 边缘,节点,集群,图形 style "" 设置图组件的样式信息。
stylesheet 图形 string "" 指定 XML 样式表的 URL 或路径名,用于 SVG 输出。 仅限 svg
tail_lp 边缘 point 边的尾部标签的位置(以点为单位)。 仅供写入。
tailclip 边缘 bool true 如果为真,边的尾部将被剪裁到尾部节点的边界。
tailhref 边缘 escString "" tailURL 的同义词。 仅限 map 和 svg
taillabel 边缘 lblString "" 要放置在边尾部附近的文本标签。
tailport 边缘 portPos center 指示在尾部节点的哪个位置连接边的尾部。
tailtarget 边缘 escString <none> 用于 tailURL 链接的浏览器窗口。 仅限 map 和 svg
tailtooltip 边缘 escString "" 附加到边尾部的工具提示注释。 仅限 cmapsvg
tailURL 边缘 escString "" 如果定义,tailURL 将作为边的尾部标签的一部分输出。 仅限 map 和 svg
target 边缘,节点,图形,集群 escStringstring <none> 如果对象具有 URL,则此属性确定使用浏览器的哪个窗口打开 URL。 仅限 map 和 svg
TBbalance 图形 string '' 将浮动(松散)节点移动到的 等级。 仅限 dot
tooltip 节点、边、簇、图 escString "" 附加到节点、边、簇或图的工具提示(鼠标悬停文本)。 仅限 cmapsvg
truecolor 图形 bool 内部位图渲染是否依赖于真彩色颜色模型或使用。 仅限位图输出。
URL 边缘,节点,图形,集群 escString <none> 合并到设备相关输出中的超链接。 仅限 map、postscriptsvg
vertices 节点 pointList 设置节点多边形的顶点坐标(以英寸为单位)。 仅供写入。
viewport 图形 viewPort "" 最终绘图上的剪切窗口。
voro_margin 图形 double 0.05 0.0 Voronoi 技术的调整边距。 仅限 neatofdpsfdptwopicirco
weight 边缘 intdouble 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

在 Graphviz 代码库中搜索 "area"

arrowhead

边头部节点上的箭头样式

类型:arrowType,默认:normal

只有当 dir 属性forwardboth 时,它才会出现。

请参见 限制

另请参见

在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "arrowhead"

arrowsize

箭头的乘法缩放因子

类型:double,默认:1.0,最小值:0.0

示例
digraph {
  quiver -> "0.5" [arrowsize=0.5]
  quiver -> "1"
  quiver -> "2" [arrowsize=2]
  quiver -> "3" [arrowsize=3]
}
在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "arrowsize"

arrowtail

边尾部节点上的箭头样式

类型:arrowType,默认:normal

只有当 dir 属性backboth 时,它才会出现。

请参见 限制

另请参见

在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "arrowtail"

bb

以点为单位的绘图边界框

类型:rect

在以下方面有效
  • 集群
  • 图形

注意:仅供写入。

在 Graphviz 代码库中搜索 "bb"

beautify

是否在 sfdp 中以圆形方式均匀地绘制叶子节点围绕根节点。

类型:bool,默认:false

是否尝试以圆形方式均匀地绘制叶子节点围绕根节点。

在 Graphviz 8.0.1 之前,这受 问题 2283 的影响:渲染的扇区比必要的少一个,导致第一个和最后一个节点重叠。

示例

美化
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

在 Graphviz 代码库中搜索 "beautify"

bgcolor

画布背景颜色

类型:color | colorList,默认:<none>

当附加到根图时,此颜色用作整个画布的背景。

当它是簇属性时,它用作簇的初始背景。 如果簇具有填充的 style,则簇的 fillcolor 将覆盖背景颜色。

如果该值为 colorList,则使用渐变填充。 默认情况下,它是线性填充;设置 style=radial 将导致径向填充。 只使用两种颜色。 如果第二种颜色(冒号之后)丢失,则使用默认颜色。 有关设置渐变角度,请参见 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
  }
}
在以下方面有效
  • 图形
  • 集群

在 Graphviz 代码库中搜索 "bgcolor"

center

是否将绘图居中在输出画布上

类型:bool,默认:false

可以是 truefalse

在以下方面有效
  • 图形

在 Graphviz 代码库中搜索 "center"

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 值不匹配,则生成的输出可能非常奇怪。

无法将 HTML 类标签 与 Big-5 编码结合使用。

示例
digraph G {
  charset="UTF-8"
  "🍔" -> "💩"
}
在以下方面有效
  • 图形

在 Graphviz 代码库中搜索 "charset"

class

要附加到节点、边、图或簇的 SVG 元素的类名

类型:string,默认:""

结合 stylesheet 使用 CSS 类名对 SVG 输出进行样式设置。

支持多个空格分隔的类。

另请参见

示例

digraph G {
  graph [class="cats"];

  subgraph cluster_big {
    graph [class="big_cats"];

    "Lion" [class="yellow social"];
    "Snow Leopard" [class="white solitary"];
  }
}
在以下方面有效
  • 边缘
  • 节点
  • 集群
  • 图形

注意:仅限 svg

在 Graphviz 代码库中搜索 "class"

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";
  }
}
在以下方面有效
  • 集群
  • 子图

在 Graphviz 代码库中搜索 "cluster"

clusterrank

用于处理簇的模式

类型:clusterMode,默认:local

如果 clusterrank=local,则名称以 cluster 开头的子图将获得特殊处理。

子图将被单独布局,然后作为一个单元集成到其父图中,并在其周围绘制一个边界矩形。 如果簇具有 label 参数,则该标签将显示在矩形内。

还要注意,簇中可以包含簇。

模式 clusterrank=globalclusterrank=none 似乎相同,都关闭了特殊的簇处理。

在以下方面有效
  • 图形

注意:仅限 dot

在 Graphviz 代码库中搜索 "clusterrank"

color

图形的基本绘制颜色,而不是文本

类型:color | colorList,默认:black

对于后者,请使用 fontcolor 属性。

对于边,该值可以是单一颜色或 colorList

在后一种情况下,如果 colorList 没有分数,则使用并行样条线或直线绘制边,每种颜色一条,按给定的顺序。

如果存在,则头部箭头使用列表中的第一种颜色绘制,如果存在,则尾部箭头使用第二种颜色绘制。 这支持绘制相反边的常见情况,但使用并行样条线而不是单独路由的多边。

如果使用任何分数,则颜色按顺序绘制,每种颜色大约占边的指定分数。

例如,图

边颜色示例
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"]
  }
}

产生

另请参见

在以下方面有效
  • 边缘
  • 节点
  • 集群

在 Graphviz 代码库中搜索 "color"

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&#45;&gt;B -->
<!-- I am an edge -->
<g id="edge1" class="edge">
<title>A&#45;&gt;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>
在以下方面有效
  • 边缘
  • 节点
  • 图形

在 Graphviz 代码库中搜索 "comment"

compound

如果为真,则允许集群之间的边

类型:bool,默认:false

参见 lheadltail

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 代码库中搜索 "compound"

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 必须位于 bc 上方,产生图

在以下方面有效
  • 边缘

注意:仅限 dot

在 Graphviz 代码库中搜索 "constraint"

Damping

因子阻尼力运动。

类型:double,默认值:0.99,最小值:0.0

在每次迭代中,节点的移动都限制在其潜在移动的这个因子内。由于小于 1.0,系统趋向于“冷却”,从而防止循环。

在以下方面有效
  • 图形

注意:仅限 neato

在 Graphviz 代码库中搜索 "Damping"

decorate

是否使用线将边标签连接到边

类型:bool,默认:false

如果为真,则通过 2 段折线将边标签附加到边,对标签进行下划线,然后移至样条线的最近点。

示例
digraph {
  a -> a [label="AA" decorate=true]
  a -> b [label="AB" decorate=true]
  b -> b [label="BB" decorate=false]
}
在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "decorate"

defaultdist

单独的连通组件中节点之间的距离

类型:double,默认值:1+(avg. len)*sqrt(|V|),最小值:epsilon

如果设置得太小,连通组件可能会重叠。

仅当 pack=false 时适用。

在以下方面有效
  • 图形

注意:仅限 neato

在 Graphviz 代码库中搜索 "defaultdist"

dim

设置用于布局的维度数

类型:int,默认值:2,最小值:2

允许的最大值为 10

在以下方面有效
  • 图形

注意:仅限 neatofdpsfdp

在 Graphviz 代码库中搜索 "dim"

dimen

设置用于渲染的维度数

类型:int,默认值:2,最小值:2

允许的最大值为 10

如果同时设置了 dimendim,则后者指定用于布局的维度,而前者指定用于渲染的维度。如果只设置了 dimen,则它将用于布局和渲染维度。

请注意,目前,渲染的所有方面都是 2D。这包括节点的形状和大小、重叠去除和边路由。因此,对于 dimen > 2,唯一有效的信息是节点的 pos 属性。

所有其他坐标将是 2D,并且充其量将反映高维点在平面上的投影。

在以下方面有效
  • 图形

注意:仅限 neatofdpsfdp

在 Graphviz 代码库中搜索 "dimen"

dir

用于绘制箭头头的边类型

类型:dirType,默认值:forward(有向)none(无向)

指示边的哪些端点应该用箭头头装饰。

箭头头的实际样式可以使用 arrowheadarrowtail 属性指定。

参见 限制

示例
digraph {
  A->B [dir=forward]
  C->D [dir=back]
  E->F [dir=both]
  G->H [dir=none]
}
在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "dir"

diredgeconstraints

是否将大多数边约束为向下指向

类型:string | bool,默认值:false

如果为真,则为最大(启发式)有向无环子图中的每条边生成约束,使得该边必须向下指向。

仅当 mode="ipsep" 时有效。

如果为 hier,则生成类似于 mode="hier" 使用的级别约束。主要区别在于,在后一种情况下,仅涉及这些约束,因此可以使用更快的求解器。

在以下方面有效
  • 图形

注意:仅限 neato

在 Graphviz 代码库中搜索 "diredgeconstraints"

distortion

shape=polygon 的失真因子

类型: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.00.0

对于 bitmap 输出,dpi 保证文本渲染将更加准确,无论是在大小还是在位置上。

对于 SVG 输出,dpi 保证输出中的尺寸对应于正确的点数或英寸数。

在以下方面有效
  • 图形

注意:仅限位图输出、svg

在 Graphviz 代码库中搜索 "dpi"

edgehref

edgeURL 的同义词

类型:escString,默认值:""

另请参见

在以下方面有效
  • 边缘

注意:仅限映射、svg

在 Graphviz 代码库中搜索 "edgehref"

edgetarget

用于 edgeURL 链接的浏览器窗口

类型:escString,默认值:<none>

如果边具有 URLedgeURL 属性,则 edgetarget 确定浏览器的哪个窗口用于附加到边的非标签部分的 URL。

设置 edgetarget=_graphviz 将打开一个新窗口(如果它不存在),或者重新使用它(如果它存在)。

如果未定义,则使用 target 的值。

在以下方面有效
  • 边缘

注意:仅限映射、svg

在 Graphviz 代码库中搜索 "edgetarget"

edgetooltip

附加到边的非标签部分的工具提示注释

类型:escString,默认值:""

在以下方面有效
  • 边缘

注意:仅限 cmapsvg

在 Graphviz 代码库中搜索 "edgetooltip"

edgeURL

边的非标签部分的链接

类型:escString,默认值:""

edgeURL 覆盖为边定义的任何 URL

此外,edgeURL 用于靠近头部或尾部节点,除非分别被 headURLtailURL 覆盖。

参见 限制

另请参见

在以下方面有效
  • 边缘

注意:仅限映射、svg

在 Graphviz 代码库中搜索 "edgeURL"

epsilon

终止条件

类型:double,默认值:.0001 * # nodes (mode == KK) , .0001 (mode == major) , .01 (mode == sgd)

如果所有能量梯度的长度平方小于 epsilon,则算法停止。

在以下方面有效
  • 图形

注意:仅限 neato

在 Graphviz 代码库中搜索 "epsilon"

esep

用于样条边路由的多边形周围的边距

类型:addDouble | addPoint,默认值:+3

解释与 sep 中给出的相同。esep 通常应该严格小于 sep

在以下方面有效
  • 图形

注意:仅限 neatofdpsfdp、osage、circotwopi

在 Graphviz 代码库中搜索 "esep"

fillcolor

用于填充节点或集群背景的颜色

类型:color | colorList,默认值:lightgrey (nodes) , black (clusters)

假设 style=filled,或填充的 arrowhead

如果 fillcolor 未定义,则使用 color。(对于集群,如果 color 未定义,则使用 bgcolor。)如果它未定义,则使用默认值,除了 shape=point 或当输出格式为 MIF 时,默认情况下使用黑色。

如果该值是 colorList,则使用渐变填充。默认情况下,这是线性填充;设置 style=radial 将导致径向填充。目前,只使用两种颜色。如果第二种颜色(冒号之后)丢失,则使用默认颜色。

另请参见 gradientangle 属性以设置渐变角度。

请注意,集群会继承根图的属性(如果已定义)。因此,如果根图定义了 fillcolor,这将覆盖为集群设置的 colorbgcolor 属性。

在以下方面有效
  • 节点
  • 边缘
  • 集群

在 Graphviz 代码库中搜索 "fillcolor"

fixedsize

是否使用指定的宽度和高度属性来选择节点大小(而不是根据节点内容的大小来调整大小)

类型:bool | string,默认值:false

如果为 false,则节点的大小由包含其标签和图像(如果有)所需的最小宽度和高度决定,边距由 margin 属性指定。

宽度和高度还必须至少与 widthheight 属性指定的尺寸一样大,这些属性指定了这些参数的最小值。

如果设置为 true,节点的大小仅由 widthheight 属性的值指定,不会扩展以包含文本标签。如果标签(包含边距)无法容纳在这些限制内,将出现警告。

如果 fixedsize 属性设置为 shapewidthheight 属性也决定节点形状的大小,但标签可以大得多。在避免节点重叠时,标签和形状大小都会被使用,但所有指向节点的边都忽略标签,只与节点形状接触。如果标签太大,不会发出警告。

在以下方面有效
  • 节点

在 Graphviz 代码库中搜索 "fixedsize"

fontcolor

用于文本的颜色

类型:color,默认值:black

在以下方面有效
  • 边缘
  • 节点
  • 图形
  • 集群

在 Graphviz 代码库中搜索 "fontcolor"

fontname

用于文本的字体

类型:string,默认值:"Times-Roman"

这在很大程度上取决于输出格式,并且对于非位图输出(如 PostScript 或 SVG),还取决于图形显示或打印时字体的可用性。因此,最好依赖于普遍可用的字体面,例如 Times-Roman、Helvetica 或 Courier。

字体名称的解析方式还取决于处理字体名称解析的底层库。如果 Graphviz 使用 fontconfig 库 构建,则将使用后一个库来搜索字体。有关名称如何解析以及哪些字体可用的信息,请参阅命令 fc-listfc-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 或 True Type 字体文件的名称。如果指定 fontname=schlbk,工具将在 fontpath 属性指定的目录之一中查找名为 schlbk.ttfschlbk.pfaschlbk.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

允许用户控制基本字体名称在 SVG 输出中的表示方式

类型:string,默认:""

如果 fontnames 未定义或为 svg,输出将尝试使用已知的 SVG 字体名称。

例如,默认字体 Times-Roman 将映射到基本 SVG 字体 serif。可以通过将 fontnames 设置为 pshd 来覆盖此设置。在前一种情况下,输出中将使用已知的 PostScript 字体名称(如 Times-Roman)。在后一种情况下,将使用 fontconfig 字体约定。因此,Times-Roman 将被视为 Nimbus Roman No9 L。最后两个选项对支持这些更丰富的字体名称空间的 SVG 查看器很有用。

在以下方面有效
  • 图形

注意:仅限 svg

在 Graphviz 代码库中搜索 "fontnames"

fontpath

libgd 用于搜索位图字体的目录列表

类型:string,默认值:<system-dependent>

如果 Graphviz 不是使用 fontconfig 库 构建的,则使用。

如果未设置 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

如果为真,所有 xlabel 属性都将被放置,即使与节点或其他标签存在重叠。

在以下方面有效
  • 图形

在 Graphviz 代码库中搜索 "forcelabels"

gradientangle

如果使用渐变填充,则确定填充的角度

类型:int,默认值: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,默认值:""

另请参见

在以下方面有效
  • 边缘

注意:仅限映射、svg

在 Graphviz 代码库中搜索 "headhref"

headlabel

要放置在边头部附近的文本标签

类型:lblString,默认值:""

参见 限制

在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "headlabel"

headport

指示在头部节点的哪个位置连接边的头部

类型:portPos,默认值:center

在默认情况下,边将指向节点的中心,然后在节点边界处剪裁。

参见 限制

在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "headport"

headtarget

用于 headURL 链接的浏览器窗口

类型:escString,默认值:<none>

如果边具有 headURLheadtarget 决定使用浏览器的哪个窗口进行 URL。设置 headURL=_graphviz 将在窗口不存在时打开一个新窗口,或在窗口存在时重用该窗口。

如果未定义,将使用 target 的值。

在以下方面有效
  • 边缘

注意:仅限映射、svg

在 Graphviz 代码库中搜索 "headtarget"

headtooltip

附加到边头部的工具提示注释

类型:escString,默认值:""

仅在边具有 headURL 属性时使用。

另请参见

在以下方面有效
  • 边缘

注意:仅限 cmapsvg

在 Graphviz 代码库中搜索 "headtooltip"

headURL

如果已定义,headURL 将作为边头部标签的一部分输出

类型:escString,默认值:""

此外,此值将在头部节点附近使用,覆盖任何 URL 值。

参见 限制

另请参见

在以下方面有效
  • 边缘

注意:仅限映射、svg

在 Graphviz 代码库中搜索 "headURL"

height

节点的高度(以英寸为单位)

类型:double,默认值:0.5,最小值:0.02

这被视为节点的初始最小高度。如果 fixedsize 为真,这将是节点的最终高度。否则,如果节点标签需要更多高度才能容纳,节点的高度将增加以包含标签。

如果输出格式为 dot,则提供给 height 的值将是最终值。

如果节点形状是规则的,则宽度和高度将变得相同

  • 如果显式设置了 widthheight,则使用这两个值中的最大值。
  • 如果显式设置了 widthheight 之一,则该值将用于 widthheight
  • 如果两者都没有显式设置,则使用两个默认值中的最小值。
高度示例
digraph G {
  "default"
  "1in" [height=1]
  "2in" [height=2]
}

另请参见

在以下方面有效
  • 节点

在 Graphviz 代码库中搜索 "height"

href

URL 的同义词

类型:escString,默认值:""

另请参见

在以下方面有效
  • 图形
  • 集群
  • 节点
  • 边缘

注意:仅限于 map、postscriptsvg

在 Graphviz 代码库中搜索 "href"

id

图形对象的标识符

类型:escString,默认值:""

允许图形作者为图形对象提供一个标识符,该标识符将包含在输出中。

将应用正常的 \N\E\G 替换。

如果提供,则提供者有责任确保 id 值对其预期的下游使用保持唯一。

尤其要注意,\E 不会为多边提供唯一的 id。

如果未提供 id 属性,则将使用唯一的内部 id。但是,此值对于图形编写者来说是不可预测的。

如果图形提供了 id 属性,它将用作内部生成的属性的前缀。通过使内部使用的属性保持唯一,用户可以在同一文档中包含多个图像地图。

在以下方面有效
  • 图形
  • 集群
  • 节点
  • 边缘

注意:仅限于 map、postscriptsvg

在 Graphviz 代码库中搜索 "id"

image

给出包含要显示在节点内的图像的文件的名称

类型:string,默认:""

图像文件必须是识别出的 格式 之一,通常是 JPEG、PNG、GIF、BMP、SVG 或 Postscript,并且能够转换为所需的输出格式。

文件必须包含图像大小信息

  • 位图格式通常已经包含图像大小。
  • PostScript 文件必须包含以 %%BoundingBox: 开头的行,后跟四个整数,分别指定图像边界框的左下角 x 和 y 坐标以及右上角 x 和 y 坐标,坐标以磅为单位。
  • SVG 图像文件必须包含 width 和 height 属性,通常作为 svg 元素的一部分。这些属性的值应采用浮点数的形式,后跟可选单位,例如 width="76pt"。识别的单位分别为 in、px、pc、pt、cm 和 mm,代表英寸、像素、皮卡、磅、厘米和毫米。默认单位是磅。

shapefile 属性不同,图像被视为节点内容,而不是整个节点。特别是,图像可以包含在任何形状的节点中,而不仅仅是矩形。

仅支持本地资源的路径。如果要使用指向远程资源的 URL,请参阅 dot_url_resolve.py 脚本。

在以下方面有效
  • 节点

在 Graphviz 代码库中搜索 "image"

imagepath

用于查找图像文件的目录列表

类型:string,默认:""

当由 image 属性指定或在 HTML 样式标签 中使用 IMG 元素时。

imagepath 应是一个目录名称列表,每个目录名称由分号 ;(Windows)或冒号 :(所有其他操作系统)分隔。

将使用找到具有给定名称文件的第一个目录来加载图像。

如果未设置 imagepath,则图像文件的相对路径名将相对于当前工作目录进行解释。

在以下方面有效
  • 图形

在 Graphviz 代码库中搜索 "imagepath"

imagepos

控制图像在其包含节点中的位置

类型: 字符串,默认: "mc"

imagepos 仅在图像小于包含节点时才起作用。

默认情况下,图像在水平和垂直方向上居中。

有效值

  • tl - 左上角
  • tc - 顶部居中
  • tr - 右上角
  • ml - 中间左侧
  • mc - 中间居中 (默认)
  • mr - 中间右侧
  • bl - 左下角
  • bc - 底部居中
  • br - 右下角
在以下方面有效
  • 节点

在 Graphviz 代码库中搜索 "imagepos"

imagescale

控制图像如何填充其包含节点

类型:bool | string,默认值:false

通常,图像会使用其自然大小(参见 dpi),而节点大小会变得足够大以包含其图像、标签、边距和外围。

其宽度和高度也将至少与其最小 widthheight 一样大。但是,如果 fixedsize=true,则宽度和高度属性指定节点的精确大小。

  • 在渲染过程中,在默认情况下(imagescale=false),图像会保留其自然大小。
  • 如果 imagescale=true,则图像将被均匀缩放(即,其纵横比保持不变)以适应节点。图像的至少一个维度将尽可能大,考虑到节点的大小。
  • imagescale=width 时,图像的宽度将被缩放以填充节点宽度。
  • imagescale=height 时,相应的属性成立。
  • imagescale=both 时,高度和宽度都将分别缩放以填充节点。

在所有情况下,如果图像的某个维度大于节点的相应维度,则图像的该维度将缩放到适合节点。

与扩展情况一样,如果 imagescale=true,则宽度和高度将被均匀缩放。

在以下方面有效
  • 节点

在 Graphviz 代码库中搜索 "imagescale"

inputscale

缩放输入 位置 以在长度单位之间进行转换

类型: 双精度,默认: <none>

对于支持初始输入位置(由 pos 属性指定)的布局算法,可以使用此属性来适当地缩放值。

默认情况下,fdpneatopos 的 x 和 y 值解释为英寸。(注意: neato -n(2) 将坐标视为点,是布局算法用于 pos 属性的单位。)因此,如果图具有以点为单位的 pos 属性,则应设置 inputscale=72。这也可以使用 -s 标志 在命令行上设置。

如果未设置,则不会进行缩放,并且输入上的单位将被视为英寸。

inputscale=0 等效于 inputscale=72

在以下方面有效
  • 图形

注意:仅适用于 neatofdp

在 Graphviz 代码库中搜索 "inputscale"

K

虚拟物理模型中使用的弹簧常数

类型: 双精度,默认: 0.3,最小值: 0

它大致对应于理想的边长(以英寸为单位),因为增加 K 往往会增加节点之间的距离。

请注意,边属性 len 可用于覆盖相邻节点的此值。

在以下方面有效
  • 图形
  • 集群

注意:仅适用于 fdpsfdp

在 Graphviz 代码库中搜索 "K"

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"]
  }
}
在以下方面有效
  • 边缘
  • 节点
  • 图形
  • 集群

在 Graphviz 代码库中搜索 "label"

label_scheme

是否将名称形式为 |edgelabel|* 的节点视为代表边标签的特殊节点。

类型:int,默认值:0,最小值:0

  • 默认值 label_scheme=0 不会产生任何效果。
  • 如果 label_scheme=1sfdp 会使用基于惩罚的方法使这种类型的节点靠近其邻居的中心。
  • 使用 label_scheme=2sfdp 会使用基于惩罚的方法使这种类型的节点靠近其邻居的旧中心。
  • 最后,label_scheme=3 会调用一个两步过程,即去除重叠和拉直。
在以下方面有效
  • 图形

注意:仅限 sfdp

在 Graphviz 代码库中搜索 "label_scheme"

labelangle

头端和尾端边标签在极坐标中的角度(以度为单位)。

类型: 双精度,默认: -25.0,最小值: -180.0

labeldistance 一起确定 headlabel / taillabel 相对于头部/尾部的放置位置,使用极坐标。

坐标系中的原点是边与节点接触的点。0 度射线从原点沿边反向,平行于原点处的边。

角度(以度为单位)指定了从 0 度射线旋转的角度,正角度按逆时针方向移动,负角度按顺时针方向移动。

在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "labelangle"

labeldistance

用于缩放 headlabel / taillabel 与头部/尾部节点距离的比例因子。

类型:double,默认:1.0,最小值:0.0

默认距离为 10 点。

labeldistance 乘以该默认值。

有关更多详细信息,请参见 labelangle

在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "labeldistance"

labelfloat

如果为真,则允许边标签的位置约束较少

类型:bool,默认:false

特别地,它可能出现在其他边之上。

在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "labelfloat"

labelfontcolor

用于 headlabeltaillabel 的颜色。

类型:color,默认值:black

如果未设置,则默认为边的 fontcolor

在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "labelfontcolor"

labelfontname

headlabeltaillabel 的字体

类型:string,默认值:"Times-Roman"

用于 headlabeltaillabel 的字体。

如果未设置,则默认为边的 fontname

在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "labelfontname"

labelfontsize

headlabeltaillabel 的字体大小

类型:double,默认值:14.0,最小值:1.0

字体大小(以点为单位),用于 headlabeltaillabel

如果未设置,则默认为边的 fontsize

在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "labelfontsize"

labelhref

labelURL 的同义词

类型:escString,默认值:""

另请参见

在以下方面有效
  • 边缘

注意:仅限映射、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=tlabelloc=b,分别对应于顶部和底部的放置位置。

默认情况下,根图标签位于底部,集群标签位于顶部。

请注意,子图会从其父图继承属性。因此,如果根图设置 labelloc=b,则子图会继承此值。

对于节点,此属性仅在节点的高度大于其标签的高度时使用。

如果 labelloc=tlabelloc=clabelloc=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>

如果边具有 URLlabelURL 属性,则此属性确定用于标签附加 URL 的浏览器窗口。

设置 labeltarget=_graphviz 会在窗口不存在时打开一个新窗口,或者在窗口存在时重新使用它。

如果未定义,将使用 target 的值。

在以下方面有效
  • 边缘

注意:仅限映射、svg

在 Graphviz 代码库中搜索 "labeltarget"

labeltooltip

附加到边标签的工具提示注释

类型:escString,默认值:""

在以下方面有效
  • 边缘

注意:仅限 cmapsvg

在 Graphviz 代码库中搜索 "labeltooltip"

labelURL

如果定义,labelURL 是用于边标签的链接

类型:escString,默认值:""

labelURL 会覆盖为边定义的任何 URL

另请参见

在以下方面有效
  • 边缘

注意:仅限映射、svg

在 Graphviz 代码库中搜索 "labelURL"

landscape

如果为真,则图将以横向模式渲染

类型:bool,默认:false

rotate=90orientation=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,默认:""

指定要使用的 布局引擎 的名称,例如 dotneato

通常,图形应独立于布局类型。但是,在某些情况下,将所需的布局类型嵌入到图形中可能很方便。

例如,包含来自布局的位置信息的图形可能想要记录关联的布局引擎是什么。

此属性优先于 -K 标志 或使用的实际命令名称。

在以下方面有效
  • 图形

在 Graphviz 代码库中搜索 "layout"

len

首选边长,单位为英寸

类型:双精度浮点数,默认值:1.0(neato), 0.3(fdp)

另请参见

在以下方面有效
  • 边缘

注意:仅适用于 neatofdp

在 Graphviz 代码库中搜索 "len"

levels

多级方案中允许的级别数

类型:整数,默认值:INT_MAX,最小值:0.0

在以下方面有效
  • 图形

注意:仅限 sfdp

在 Graphviz 代码库中搜索 "levels"

levelsgap

neato 级别约束的严格程度

类型:双精度浮点数,默认值:0.0

mode="ipsep"mode=hier 时,指定 neato 中级别约束的严格程度。

较大的正值表示更严格的约束,这要求级别之间有更大的间隔。另一方面,负值将通过允许级别之间存在一些重叠来放宽约束。

在以下方面有效
  • 图形

注意:仅限 neato

在 Graphviz 代码库中搜索 "levelsgap"

lhead

边的逻辑头部

类型:string,默认:""

compound 为真时,如果定义了 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) 被分成两行,当打印为 规范输出

$ 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

对于图形,这会设置画布的 x 和 y 边距,单位为英寸

类型:双精度浮点数 | ,默认值:<device-dependent>

如果边距是单个双精度浮点数,则两个边距都将设置为给定值。

请注意,边距不是绘图的一部分,而只是在绘图周围留出的空白区域。边距基本上对应于绘图的平移,正如将绘图居中在页面上所需的平移一样。实际上不会在边距中绘制任何内容。要真正扩展绘图的背景,请参阅 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)

在以下方面有效
  • 图形

注意:仅适用于 neatofdp

在 Graphviz 代码库中搜索 "maxiter"

mclimit

mincross (mc) 边交叉最小化参数的缩放因子

类型:双精度浮点数,默认值: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

用于优化布局的技术

类型:字符串,默认值:major

neato 支持模式

  • mode="major"neato 使用应力主化1
  • mode="KK"neato 使用 Kamada-Kawai2 版本的梯度下降方法。对于较小的图形(节点数 < 100),KK 有时会快得多。一个明显的缺点是 KK 可能循环。
  • mode="sgd"neato 使用随机梯度下降3 方法的一个版本。sgd 的优点是比前两种方法更快、更可靠的收敛,而 sgd 的缺点是它在固定数量的迭代次数内运行,并且可能需要在某些图形中使用更大的 maxiter 值。

neato 中有两种实验模式

  • mode="hier",它添加了类似于 dot 中使用的布局的从上到下的方向性,以及
  • mode="ipsep",它允许图形指定节点之间的最小垂直和水平距离。(请参阅 sep 属性。)
在以下方面有效
  • 图形

注意:仅限 neato

在 Graphviz 代码库中搜索 "mode"

model

指定如何为输入图形计算距离矩阵

类型:字符串,默认值: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 指定相同等级中两个相邻节点之间的最小间距,单位为英寸

类型:双精度浮点数,默认值: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,第一行标签很长,第二行较短且左对齐,则第二行将与第一行中最左边的字符对齐,而与节点的大小无关。

请参阅此示例,其中包含 \l(左对齐)转义字符串

Nojustify 使文本与上一行文本对齐,而不是与框的左侧对齐
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
}
Nojustify 使文本与上一行文本对齐,而不是与记录列对齐
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

对最终布局的坐标进行归一化

类型:双精度浮点数 | 布尔值,默认值:false

以便第一个点位于原点,然后旋转布局,使第一条边的角度由 normalize 的值(以度为单位)指定。

如果 normalize 不是数字,则将其评估为布尔值,其中 true 对应于 0 度。

注意:由于属性首先被评估为数字,因此 01 不能用于 falsetrue

在以下方面有效
  • 图形

注意:仅适用于 neatofdpsfdptwopicirco

在 Graphviz 代码库中搜索 "normalize"

notranslate

是否避免将布局平移到原点

类型:bool,默认:false

默认情况下,最终布局会被平移,使边界框的左下角位于原点。

如果某些节点被固定,或者用户运行 neato -n,这可能会很烦人。

要避免这种平移,请将 notranslate=true 设置为 true

在以下方面有效
  • 图形

注意:仅限 neato

在 Graphviz 代码库中搜索 "notranslate"

nslimit

设置网络单纯形应用中的迭代次数

类型:双精度浮点数

nslimit 用于计算 节点 x 坐标

如果已定义,# 迭代次数 = nslimit * # 节点;否则,# 迭代次数 = INT_MAX

在以下方面有效
  • 图形

注意:仅限 dot

在 Graphviz 代码库中搜索 "nslimit"

nslimit1

设置网络单纯形应用中的迭代次数

类型:双精度浮点数

nslimit1 用于对节点进行排名。

如果已定义,# 迭代次数 = nslimit * # 节点;否则,# 迭代次数 = INT_MAX

在以下方面有效
  • 图形

注意:仅限 dot

在 Graphviz 代码库中搜索 "nslimit1"

oneblock

是否在圆周上绘制 circo 图。

类型:bool,默认:false

观察渲染相同图形的两个示例

示例:多个块
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

节点形状旋转角度或图形方向

类型:double | string,默认值: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

指定绘制节点和边的顺序

类型:outputMode,默认值:breadthfirst

在以下方面有效
  • 图形

在 Graphviz 代码库中搜索 "outputorder"

overlap

确定是否以及如何移除节点重叠

类型:string | bool,默认值:true

节点首先使用 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 轴。后缀指示哪个轴先处理。如果该值为 "ortho",则该技术类似于 "orthoxy",只是使用启发式方法来减少两次传递之间的偏差。如果该值为 "ortho_yx",则该技术与 "ortho" 相同,只是 x 和 y 的角色颠倒。值 "portho""porthoxy""porthoxy""portho_yx" 与前四个类似,只是仅强制执行伪正交排序。

如果布局由 neato 完成,且 mode="ipsep",则可以使用 overlap=ipsep。在这种情况下,重叠消除约束会融入布局算法本身。注意:目前,这仅支持一层聚类。

除了 fdpsfdp 外,布局都假设 overlap="true" 作为默认值。Fdp 首先使用内置的基于力的技术进行多次传递,以尝试移除重叠。因此,fdp 接受 overlap,其中包含一个整数前缀,后跟一个冒号,指定尝试次数。如果没有前缀,则不会执行初始尝试。如果冒号后面什么也没有,则不会尝试上述任何方法。默认情况下,fdp 使用 overlap="9:prism"。请注意,overlap="true"overlap="0:true"overlap="0:" 都将关闭所有重叠消除。

默认情况下,sfdp 使用 overlap="prism0"

除了 Voronoi 和 prism 方法外,所有这些变换都保留原始布局的正交排序。也就是说,如果两个节点的 x 坐标最初相同,它们将保持相同,并且如果一个节点的 x 坐标最初小于另一个节点的 x 坐标,则这种关系在变换后的布局中仍然成立。类似的属性适用于 y 坐标。这对于 "porth*" 情况并不完全正确。对于这些情况,正交排序仅在通过边相关的节点之间保留。

在以下方面有效
  • 图形

注意:fdpneatosfdpcircotwopi 专用。

在 Graphviz 代码库中搜索 "overlap"

overlap_scaling

通过因子缩放布局,以减少节点重叠。

类型:double,默认值:-4,最小值:-1e+10

overlap=prism 时,布局将按此因子缩放,从而消除大量节点重叠,并使节点重叠消除更快,并且能够更好地保留图形的形状。

  • 如果 overlap_scaling 为负数,则布局将按 -1*overlap_scaling 乘以平均标签大小进行缩放。

  • 如果 overlap_scaling 为正数,则布局将按 overlap_scaling 进行缩放。

  • 如果 overlap_scaling 为零,则不进行缩放。

在以下方面有效
  • 图形

注意:prismneatosfdpfdpcircotwopi 专用。

在 Graphviz 代码库中搜索 "overlap_scaling"

overlap_shrink

重叠消除算法是否应执行压缩传递以减小布局的大小

类型:bool,默认值:true

在以下方面有效
  • 图形

注意:prism 专用。

在 Graphviz 代码库中搜索 "overlap_shrink"

pack

图形的每个连通分量是否应分别进行布局,然后将图形打包在一起。

类型:bool | int,默认值:false

如果 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 出于美观原因,尤其是在使用背景颜色时,以避免节点和边与绘制区域的边界相邻。

在以下方面有效
  • 图形

在 Graphviz 代码库中搜索 "pad"

page

输出页面的宽度和高度(以英寸为单位)

类型:double | point

如果只给出一个值,则该值同时用于宽度和高度。

如果设置了 page 并且它小于布局的大小,则将指定页面大小的矩形页面数组叠加在布局上,其原点在左下角对齐,从而将布局划分为页面。然后,页面按 pagedir 顺序逐个生成。

目前,page 仅适用于 PostScript 输出。对于其他类型的输出,使用其他工具将输出拆分为多个输出文件,或使用 viewport 生成多个文件。

在以下方面有效
  • 图形

在 Graphviz 代码库中搜索 "page"

pagedir

发出页面的顺序

类型:pagedir,默认值:BL

仅在设置了 page 并且适用时使用。

限制为 8 种行或列主顺序之一。

在以下方面有效
  • 图形

在 Graphviz 代码库中搜索 "pagedir"

pencolor

用于绘制围绕聚类的边框的颜色

类型:color,默认值:black

如果未定义 pencolor,则使用 color

如果未定义 color,则使用 bgcolor

如果未定义 bgcolor,则使用默认值。

请注意,聚类会继承根图形的属性(如果已定义)。因此,如果根图形定义了 pencolor,则它将覆盖为聚类设置的 colorbgcolor 属性。

在以下方面有效
  • 集群

在 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

如果为真并且节点在输入时具有 pos 属性,neatofdp 将阻止节点从输入位置移动。此属性也可以在 pos 属性本身中指定(参见 point 类型)。

注意:由于实现上的一个缺陷,在 2014 年 2 月 27 日之前,最终坐标被转换为原点。因此,如果您查看(x)dot 或普通格式中给出的输出坐标,固定节点将不会具有与输入时相同的输出坐标。如果这很重要,一个简单的解决方法是维护固定节点的坐标。旧坐标和新坐标之间的向量差将给出平移,然后可以从所有适当的坐标中减去。

在 2014 年 2 月 27 日之后,可以通过在 neato 中设置 notranslate=true 来避免这种平移。但是,如果图形指定了 节点重叠移除 或纵横比 ratio 的改变,节点坐标可能仍然会改变。

在以下方面有效
  • 节点

注意:仅适用于 neatofdp

在 Graphviz 代码库中搜索 "pin"

pos

节点的位置,或样条曲线控制点

类型:point | splineType

对于节点,位置表示节点的中心。在输出时,坐标以 为单位。

neatofdp 中,pos 可用于设置节点的初始位置。默认情况下,坐标被假定为英寸。但是,可以使用 -s 命令行标志来指定不同的单位。由于输出坐标以点为单位,将由 Graphviz 程序布局的图形的输出输入到 neatofdp 中几乎总是需要 -s 标志。

当使用 neato 时使用 -n 命令行标志时,假定位置已由一个布局程序设置,因此以点为单位。因此,neato -n 可以正确接受输入,而无需 -s 标志,实际上会忽略任何此类标志。

在以下方面有效
  • 边缘
  • 节点

注意:仅适用于 neatofdp

在 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,节点标签尺寸将被四舍五入到量子值的整数倍

类型: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 中,此属性指定同心圆的径向间隔。对于 twopiranksep 也可以是一个双精度数列表。第一个双精度数指定内圆的半径;第二个双精度数指定从第一个圆到第二个圆的半径增量;等等。如果圆的数量超过数字的数量,则最后一个数字将用作剩余圆的增量。

在以下方面有效
  • 图形

注意:dottwopi 仅此而已。

在 Graphviz 代码库中搜索 "ranksep"

ratio

设置绘图的纵横比(绘图高度/绘图宽度)

类型:double | string

请注意,这会在强制执行 size 属性约束之前进行调整。

此外,计算通常会忽略节点的大小,因此最终的绘图大小可能只近似于所需的大小。

如果 ratio 是数字,则 ratio 被视为所需的纵横比。然后,如果实际纵横比小于所需的纵横比,则绘图高度将按比例放大以达到所需的纵横比;如果实际纵横比大于所需的纵横比,则绘图宽度将按比例放大。

如果 ratio="fill" 并且设置了 size 属性,则节点位置将分别在 x 和 y 中按比例缩放,以便最终绘图完全填充指定的大小。如果 size 的两个值都超过了绘图的宽度和高度,则每个节点的两个坐标值都将相应地按比例放大。但是,如果任何尺寸都小于绘图中的相应尺寸,则将按比例放大一个尺寸,以使最终绘图与 size 指定的纵横比相同。然后,在渲染时,布局将在两个维度上统一缩小,以适合给定的 size,这可能会导致节点和文本也缩小。这可能不是用户想要的,但它避免了如何以可接受的方式重新定位节点以减小绘图大小的难题。

如果 ratio="compress" 并且设置了 size 属性,则 dot 会尝试压缩初始布局以适应给定的大小。这实现了更紧密的节点打包,但减少了平衡和对称性。此功能仅在 dot 中有效。

如果 ratio="expand",设置了 size 属性,并且图形的宽度和高度都小于 size 中的值,则节点位置将统一按比例放大,直到至少一个维度完全适合 size。请注意,这与使用 size 作为所需大小不同,因为这里在生成边之前会扩展绘图,并且所有节点和文本的大小保持不变。

如果 ratio="auto",设置了 page 属性,并且图形无法绘制在一页上,则 size 被设置为“理想”值。

特别是,给定维度中的大小将是页面的最小整数倍,该页面在该维度上的大小至少是当前大小的一半。然后,这两个维度将独立地按比例缩放到新大小。此功能仅在 dot 中有效。

在以下方面有效
  • 图形

在 Graphviz 代码库中搜索 "ratio"

rects

记录字段的矩形,以 为单位

类型:rect

在以下方面有效
  • 节点

注意:仅供写入。

在 Graphviz 代码库中搜索 "rects"

regular

如果为真,则强制多边形为规则多边形。

类型:bool,默认:false

如果为真,则多边形的顶点将位于以节点中心为中心的圆周上。

digraph {
    "pentagon1" [shape="pentagon"];
    "pentagon2" [shape="pentagon" regular=true]
    "hexagon1" [shape="hexagon"];
    "hexagon2" [shape="hexagon" regular=true];
}
在以下方面有效
  • 节点

在 Graphviz 代码库中搜索 "regular"

remincross

如果有多个集群,是否要第二次运行边交叉最小化。

类型:bool,默认值:true

在以下方面有效
  • 图形

注意:仅限 dot

在 Graphviz 代码库中搜索 "remincross"

repulsiveforce

扩展的 Fruchterman-Reingold 中使用的排斥力的力量

类型:double,默认:1.0,最小值:0.0

力导向模型。大于 1 的值往往会减少扭曲效应,但代价是聚类减少。

在以下方面有效
  • 图形

注意:仅限 sfdp

在 Graphviz 代码库中搜索 "repulsiveforce"

resolution

dpi 的同义词。

类型:double,默认值:96.00.0

在以下方面有效
  • 图形

注意:仅限位图输出、svg

在 Graphviz 代码库中搜索 "resolution"

root

指定用作布局中心的节点

类型:string | bool,默认值:<none> (图形) , false (节点)

布局的中心将是生成的生成树的根。

  • 作为图形属性,它给出节点的名称。
  • 作为节点属性,它指定应使用该节点作为中心节点。

twopi 中,root 实际上将是中心节点。在 circo 中,包含该节点的块将在其连接组件的绘图中居中。如果未定义,twopi 将选择一个最中心的节点,circo 将选择一个随机节点。

如果根属性被定义为空字符串,twopi 将将其重置为选定为根节点的节点的名称。

对于 twopi,可以有多个根,可能每个组件一个。如果组件中的多个节点被标记为 roottwopi 将选择一个。

在以下方面有效
  • 图形
  • 节点

注意:twopicirco 仅此而已。

在 Graphviz 代码库中搜索 "root"

rotate

如果 rotate=90,则设置绘图方向为横向

类型:int,默认值:0

旋转
digraph {
  rotate=90
  a -> b
}

另请参见

在以下方面有效
  • 图形

在 Graphviz 代码库中搜索 "rotate"

rotation

将最终布局逆时针旋转指定的度数

类型:double,默认值:0

在以下方面有效
  • 图形

注意:仅限 sfdp

在 Graphviz 代码库中搜索 "rotation"

samehead

具有相同头部和相同 samehead 值的边指向头部上的同一点

类型:string,默认:""

这对循环没有影响。

在 Graphviz 8.0.1 之前,每个节点最多可以有 5 个唯一的 samehead 值。

参见 限制

另见 sametail

在以下方面有效
  • 边缘

注意:仅限 dot

在 Graphviz 代码库中搜索 "samehead"

sametail

具有相同尾部和相同 sametail 值的边指向尾部上的同一点。

类型:string,默认:""

这对循环没有影响。

在 Graphviz 8.0.1 之前,每个节点最多可以有 5 个唯一的 sametail 值。

参见 限制

另见 samehead

在以下方面有效
  • 边缘

注意:仅限 dot

在 Graphviz 代码库中搜索 "sametail"

samplepoints

给出用于圆形/椭圆形节点的点数

类型:int,默认值:8 (输出) , 20 (重叠和图像地图)

如果输入图形定义了 vertices 属性,并且输出为 dotxdot,则使用此属性。

neato 中,它在调整布局以避免节点重叠时起着相同的作用,在图像地图中也是如此。

在以下方面有效
  • 节点

在 Graphviz 代码库中搜索 "samplepoints"

scale

在初始布局之后,根据给定的因子缩放布局

类型:double | point

如果只给出一个数字,那么该数字将同时缩放宽度和高度。

在以下方面有效
  • 图形

注意:仅适用于 neatotwopi

在 Graphviz 代码库中搜索 "scale"

searchsize

在网络单纯形法中,在寻找最小割值的边时,搜索具有负割值的边的最大数量。

类型:int,默认值:30

在以下方面有效
  • 图形

注意:仅限 dot

在 Graphviz 代码库中搜索 "searchsize"

sep

在去除节点重叠时,在节点周围留出的边距

类型:addDouble | addPoint,默认值:+4

这保证了节点之间的最小非零距离。

如果属性以加号 '+' 开头,则指定加性边距。也就是说,"+w,h" 会导致节点的边界框在左右两侧增加 w 个点,在上下两侧增加 h 个点。

如果没有加号,则节点在 x 坐标上按 1 + w 缩放,在 y 坐标上按 1 + h 缩放。

如果只给出一个数字,则该数字将用于两个维度。

如果未设置,但定义了 esep,则 sep 值将设置为 esep 值除以 0.8。如果 esep 未设置,则使用默认值。

示例:无间距
graph {
    layout="fdp"
    sep="0"
    A -- B
    B -- C
    C -- D
    D -- A
}
示例:间距为 3
graph {
    layout="fdp"
    sep="3"
    A -- B
    B -- C
    C -- D
    D -- A
}
在以下方面有效
  • 图形

注意:仅适用于 fdpneatosfdp、osage、circotwopi

在 Graphviz 代码库中搜索 "sep"

shape

设置节点的 形状

类型:shape,默认值:ellipse

digraph {
    "pentagon" [shape="pentagon"];
    "hexagon" [shape="hexagon"];
}
在以下方面有效
  • 节点

在 Graphviz 代码库中搜索 "shape"

shapefile

包含用户提供的节点内容的文件

类型:string,默认:""

(已弃用).

设置节点的 shape="box"。shapefile 中的图像必须是矩形的。支持的图像格式以及文件使用方式的精确语义取决于 输出格式。有关更多详细信息,请参阅 图像格式外部 PostScript 文件

这种用法有一个例外:如果 shape="epsf",则 shapefile 给出一个文件名,其中包含 PostScript 中节点的定义。定义的图形必须包含所有节点内容,包括任何所需的边界。有关更多详细信息,请参阅 外部 PostScript 文件

仅支持本地资源的路径。如果要使用指向远程资源的 URL,请参阅 dot_url_resolve.py 脚本。

在以下方面有效
  • 节点

在 Graphviz 代码库中搜索 "shapefile"

showboxes

打印指南框以进行调试

类型:int,默认值:0,最小值:0

如果 showboxes=1,则在 PostScript 中打印指南框,在路线的开头,如果 showboxes=2,则在路线的结尾。(调试,仅限 TB 模式!)

在以下方面有效
  • 边缘
  • 节点
  • 图形

注意:仅限 dot

在 Graphviz 代码库中搜索 "showboxes"

sides

shape=polygon 时,边的数量

类型:int,默认值:4,最小值:0

示例:具有 3-6 边的多边形
graph {
  Triangle  [shape=polygon sides=3]
  Rectangle [shape=polygon sides=4]
  Pentagon  [shape=polygon sides=5]
  Hexagon   [shape=polygon sides=6]
}
在以下方面有效
  • 节点

在 Graphviz 代码库中搜索 "sides"

size

绘图的最大宽度和高度(以英寸为单位)

类型:double | point

如果只给出一个数字,则该数字将用于宽度和高度。

如果定义了并且绘图大于给定大小,则绘图将统一缩小,使其适合给定大小。

如果 size 以感叹号 "!" 结尾,则 size 被视为所需的最小大小。在这种情况下,如果绘图的两个维度都小于 size,则绘图将统一放大,直到至少一个维度等于 size 中的维度。

sizeratio 属性之间存在一些交互。

在以下方面有效
  • 图形

在 Graphviz 代码库中搜索 "size"

skew

shape=polygon 的倾斜因子

类型:double,默认值:0.0,最小值:-100.0

正值将多边形顶部倾斜到右侧;负值将多边形顶部倾斜到左侧。

另请参阅 distortion

示例
graph {
  SkewLeft  [shape=polygon sides=4 skew=-.5]
  SkewRight [shape=polygon sides=4 skew=.5]
}
在以下方面有效
  • 节点

在 Graphviz 代码库中搜索 "skew"

smoothing

指定一个后处理步骤,用于平滑节点的不均匀分布。

类型:smoothType,默认值:"none"

在以下方面有效
  • 图形

注意:仅限 sfdp

在 Graphviz 代码库中搜索 "smoothing"

sortv

用于对图形组件进行排序,以对 packmode 打包进行排序。

类型:int,默认值:0,最小值:0

如果 packmode 指示数组打包,则 sortv 指定组件之间的插入顺序,较小的值先插入。

在以下方面有效
  • 图形
  • 集群
  • 节点

在 Graphviz 代码库中搜索 "sortv"

splines

控制如何以及是否表示边

类型:bool | string

如果 splines=true,则边将绘制为绕过节点的样条曲线;如果 splines=false,则边将绘制为线段。如果 splines=nonesplines="",则根本不绘制边。

(2007 年 3 月 1 日) splines=linesplines=spline 可以用作 splines=falsesplines=true 的同义词。

此外,splines=polyline 指定边应该绘制为折线。

(2010 年 9 月 28 日) splines=ortho 指定边应该绘制为轴对齐线段的折线。目前,路由不处理端口,也不处理点上的边标签。

(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",则边将绘制为避免集群以及节点。

在以下方面有效
  • 图形

在 Graphviz 代码库中搜索 "splines"

start

用于确定节点初始布局的参数

类型:startType,默认值:""

如果未设置,则节点将随机放置在单位正方形中,并且始终使用相同的种子作为随机数生成器,因此初始放置是可重复的。

以下示例具有相同的图形,但由于其 start 值不同而呈现不同

将随机种子设置为 1
graph {
    layout="fdp"
    start=1
    A -- B; B -- C; C -- D; D -- A
}
将随机种子设置为 2,图形看起来不同
graph {
    layout="fdp"
    start=2
    A -- B; B -- C; C -- D; D -- A
}
在以下方面有效
  • 图形

注意:仅限 neatofdpsfdp

在 Graphviz 代码库中搜索 "start"

style

设置图形组件的样式信息

类型:style,默认值:""

对于集群子图,如果 style="filled",则集群框的背景将被填充。

如果已为组件设置默认样式属性,则单个组件可以使用 style="" 恢复为正常默认值。例如,如果图形具有

digraph {
  edge [style="invis"]
  a -> b
}

使所有边都不可见,则 b->c 边可以通过以下方式覆盖此设置

digraph {
  edge [style="invis"]
  a -> b
  b -> c [style=""]
}

当然,组件也可以明确地将其 style 属性设置为所需的值。

在以下方面有效
  • 边缘
  • 节点
  • 集群
  • 图形

在 Graphviz 代码库中搜索 "style"

stylesheet

一个 URL 或路径名,指定一个 XML 样式表,用于 SVG 输出

类型:string,默认:""

class 结合使用,使用 CSS 选择器对元素进行样式设置。

另请参见

在以下方面有效
  • 图形

注意:仅限 svg

在 Graphviz 代码库中搜索 "stylesheet"

tail_lp

边的尾部标签的位置,以点为单位

类型:point

该位置指示标签的中心。

在以下方面有效
  • 边缘

注意:仅供写入。

在 Graphviz 代码库中搜索 "tail_lp"

tailclip

如果为真,则边的尾部将被裁剪到尾部节点的边界

类型:bool,默认值:true

否则,边的末端将指向节点的中心,或端口的中心(如果适用)。

在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "tailclip"

tailhref

tailURL 的同义词。

类型:escString,默认值:""

另请参见

在以下方面有效
  • 边缘

注意:仅限映射、svg

在 Graphviz 代码库中搜索 "tailhref"

taillabel

要放置在边尾部的文本标签

类型:lblString,默认值:""

参见 限制

在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "taillabel"

tailport

指示在尾部节点上的哪个位置附加边的尾部

类型:portPos,默认值:center

参见 限制

在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索 "tailport"

tailtarget

用于 tailURL 链接的浏览器窗口

类型:escString,默认值:<none>

如果边具有 tailURL,则 tailtarget 确定浏览器使用的哪个窗口用于 URL。

设置 tailtarget=_graphviz 将在窗口不存在的情况下打开一个新窗口,或者在窗口存在的情况下重新使用它。

如果未定义,将使用 target 的值。

在以下方面有效
  • 边缘

注意:仅限映射、svg

在 Graphviz 代码库中搜索 "tailtarget"

tailtooltip

附加到边尾部的工具提示注释

类型:escString,默认值:""

仅当边具有 tailURL 属性时使用。

在以下方面有效
  • 边缘

注意:仅限 cmapsvg

在 Graphviz 代码库中搜索 "tailtooltip"

tailURL

如果定义了,则 tailURL 将作为边尾部标签的一部分输出

类型:escString,默认值:""

此外,此值将用于尾部节点附近,覆盖任何 URL 值。

参见 限制

另请参见

在以下方面有效
  • 边缘

注意:仅限映射、svg

在 Graphviz 代码库中搜索 "tailURL"

target

如果对象具有 URL,则此属性确定浏览器使用的哪个窗口用于 URL。

类型:escString | string,默认值:<none>

参见 W3C 文档

在以下方面有效
  • 边缘
  • 节点
  • 图形
  • 集群

注意:仅限映射、svg

在 Graphviz 代码库中搜索 "target"

TBbalance

将浮动(松散)节点移动到的 等级

类型:string,默认值:''

有效选项

  • "min":将浮动(松散)节点移动到最小 等级
  • "max":将浮动(松散)节点移动到最大 等级
  • 否则,浮动节点将放置在任何位置。

尽管名称为 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

在 Graphviz 代码库中搜索 "TBbalance"

tooltip

附加到节点、边、集群或图形的工具提示(鼠标悬停文本)

类型:escString,默认值:""

如果 tooltip 未设置,则 Graphviz 将使用对象的 标签(如果已定义)。

请注意,如果 标签 是记录规范或类似 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"]
  }
}

另请参见

在以下方面有效
  • 节点
  • 边缘
  • 集群
  • 图形

注意:仅限 cmapsvg

在 Graphviz 代码库中搜索 "tooltip"

truecolor

内部位图渲染是否依赖于真彩色颜色模型或使用

类型:bool

调色板。

如果 truecolor 未设置,则除非图形中某些节点具有 shapefile 属性,否则不会使用 truecolor。输出模型将尽可能使用输入模型。

使用调色板可以在创建位图时减少内存使用量,并减少输出文件的大小。

通常,只有在图使用超过 256 种颜色时才需要指定truecolor模型。但是,如果与颜色调色板一起使用bgcolor=transparent,则字体反锯齿可能会显示为字符周围模糊的白色区域。使用truecolor=true可以避免此问题。

在以下方面有效
  • 图形

注意:仅限位图输出。

在 Graphviz 代码库中搜索"truecolor"

URL

超链接合并到设备相关输出中

类型:escString,默认值:<none>

目前,用于ps2cmapi*mapsvg格式。对于所有这些格式,URL 可以附加到节点、边和集群。URL 属性也可以附加到ps2cmapi*map格式的根图中。这用作前者的相对 URL 的基本 URL,并用作后者的默认图像映射文件。

对于svgcmapximap输出,节点的活动区域是其可见图像。例如,没有填充的节点,也没有绘制边界,只会在其标签上处于活动状态。对于其他输出,活动区域是其边界框。集群的活动区域是其边界框。对于边,活动区域是边与其头部和尾部节点接触的小圆圈。此外,对于svgcmapximap,活动区域包含一个近似于边的细多边形。圆圈可能会与相关节点重叠,并且边 URL 占主导地位。如果边具有标签,则此标签也将处于活动状态。最后,如果边具有头部或尾部标签,则此标签也将处于活动状态。

对于边,属性headURLtailURLlabelURLedgeURL允许控制边的各个部分。

如果两条边的活动区域重叠,则哪个区域占主导地位是不确定的。

另请参见

示例:带有链接的梵高画作
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、postscriptsvg

在 Graphviz 代码库中搜索"URL"

vertices

设置节点多边形顶点的坐标(以英寸为单位)

类型:pointList

如果节点是多边形,并且输出是dotxdot,则使用。

如果节点是椭圆或圆形,则samplepoints属性会影响输出。

在以下方面有效
  • 节点

注意:仅供写入。

在 Graphviz 代码库中搜索"vertices"

viewport

最终绘制的剪切窗口

类型:viewPort,默认:""

viewport优先于任何size属性。视窗的宽度和高度精确地指定了输出的最终大小。

在以下方面有效
  • 图形

在 Graphviz 代码库中搜索"viewport"

voro_margin

调整 Voronoi 技术的边距

类型:double,默认:0.05,最小值:0.0

用于将图形按比例放大以允许在Voronoi 技术中扩展的边距的因子。dim' = (1+2*margin)*dim

在以下方面有效
  • 图形

注意:仅适用于 neatofdpsfdptwopicirco

在 Graphviz 代码库中搜索"voro_margin"

weight

边的权重

类型:int | double,默认:1,最小值:0(dot,twopi)1(neato,fdp)

dot中,权重越重,边越短、越直且越垂直。

对于twopiweight=0表示边不应用于从根节点构建生成树。

对于其他布局,较大的权重鼓励布局使边长度更接近len属性指定的长度。

dot中的权重必须是整数。

边权重
digraph {
  root -> a
  root -> b [weight=2]
  root -> c [weight=3]
}
在以下方面有效
  • 边缘

在 Graphviz 代码库中搜索"weight"

width

节点的宽度(以英寸为单位)

类型:double,默认:0.75,最小值:0.01

这被视为节点的初始最小宽度。如果fixedsize为真,则这将是节点的最终宽度。否则,如果节点标签需要更多宽度才能适合,则节点的宽度将增加以包含标签。

如果输出格式为dot,则给定width的值将是最终值。

如果节点形状是规则的,则宽度和高度将变得相同

  • 如果显式设置了宽度或高度,则使用该值。
  • 如果显式设置了宽度和高度,则使用两个值中的最大值。
  • 如果两者都没有显式设置,则使用两个默认值中的最小值。
宽度示例
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

3D 布局和显示的 Z 坐标值

类型:double,默认:0.0,最小值:-MAXFLOAT-1000

已弃用:使用pos属性,以及dimen和/或dim来指定维度。

如果图形的dim设置为 3(或更多),则 neato 将使用节点的z值作为其初始位置的 z 坐标(如果其pos属性也已定义)。

即使在输入中未指定任何z值,也必须为节点声明z属性,例如,使用node[z=""]才能在输出中获得 z 值。因此,设置dim=3但不声明z将导致neato -Tvrml以 3D 布置图形,但将布局投影到 xy 平面上进行渲染。如果声明了z属性,则最终渲染将为 3D。

在以下方面有效
  • 节点

在 Graphviz 代码库中搜索"z"

最后修改时间:2024 年 7 月 28 日:用 'relref' 替换所有 Hugo 'ref'(bbef86a)