属性
下表描述了各种 Graphviz 工具使用的属性。表格给出了属性的名称、使用该属性的图形组件(节点、边等)以及属性的类型(表示该类型合法值的字符串)。在适用的情况下,表格还给出了属性的默认值、数值属性的最小允许设置,以及对使用属性的某些限制。
请注意,属性名称区分大小写。这通常也适用于属性值,除非另有说明。
所有 Graphviz 属性都由名称-值对指定。因此,要设置节点 abc
的 color
,可以使用
digraph {
abc [color = red]
}
类似地,要设置边 abc -> def
的箭头样式,可以使用
digraph {
abc -> def [arrowhead = diamond]
}
有关属性设置的更多详细信息,请参阅 DOT 语言 的描述。
目前,大多数设备无关的单位要么是英寸,要么是 点,我们将其视为每英寸 72 点。
注意:某些属性,如 dir
或 arrowtail
,在 DOT 中与无向图一起使用时是模棱两可的,因为边的头和尾没有意义。根据惯例,无向边第一次出现时,DOT 解析器将分配左侧节点作为尾节点,右侧节点作为头节点。例如,边 A -- B
将具有尾部 A
和头部 B
。用户有责任一致地处理此类边。如果边稍后以以下格式出现
graph {
B -- A [taillabel = "tail"]
}
则绘制将把尾部标签附加到节点 A
。为了避免在需要此类属性时可能出现混淆,建议用户使用有向图。如果必须使图形看起来像无向图,则可以使用 dir
、arrowtail
或 arrowhead
属性来完成。
这些工具接受标准 C 表示形式的 int
和 double
类型。对于 bool
类型,TRUE 值由 true
或 yes
(不区分大小写)以及任何非零整数表示,FALSE 值由 false
或 no
(不区分大小写)以及零表示。此外,还有各种专用类型,如 arrowType
、color
、point
和 rankdir
。这些类型的合法值在最后给出。
使用对象 列字段指示属性适用于哪些图形组件。
在 注释 字段中,只写 的注释表示属性用于输出,而不被任何布局程序使用或读取。
名称 | 使用对象 | 类型 | 默认值 | 最小值 | 描述,注释 |
---|---|---|---|---|---|
_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 |
图形,集群 | color,colorList | <none> |
画布背景颜色。 | |
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 |
如果为真,则允许集群之间的边。仅限 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 |
设置用于布局的维数。仅限 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 |
指定显示设备上每英寸的预期像素数。 位图输出,仅限svg。 | |
edgehref |
边缘 | escString | "" |
edgeURL 的同义词。 地图,仅限svg。 |
|
edgetarget |
边缘 | escString | <none> |
用于edgeURL 链接的浏览器窗口。 地图,仅限svg。 |
|
edgetooltip |
边缘 | escString | "" |
附加到边缘非标签部分的工具提示注释。 仅限cmap,svg。 | |
edgeURL |
边缘 | escString | "" |
边缘非标签部分的链接。 地图,仅限svg。 | |
epsilon |
图形 | double | .0001 * # 节点 (mode == KK).0001 (mode == major).01 (mode == 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 |
文本使用的字体大小,以点为单位。 |
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 | "" |
附加到边缘头部的工具提示注释。 仅限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 | <none> |
缩放输入位置 以在长度单位之间进行转换。 仅限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 |
如果为真,则允许边缘标签在位置上不太受约束。 | |
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 | <none> |
用于打开labelURL 链接的浏览器窗口。 地图,仅限svg。 |
|
labeltooltip |
边缘 | escString | "" |
附加到边缘标签的工具提示注释。 仅限cmap,svg。 | |
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) |
首选的边缘长度,以英寸为单位。 仅限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 * # 节点 (mode == KK)200 (mode == major)30 (mode == sgd)600 (fdp) |
设置使用的迭代次数。 仅限neato,fdp。 | |
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 |
规范化最终布局的坐标。 仅限neato,fdp,sfdp,twopi,circo。 | |
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 |
确定是否以及如何消除节点重叠。 仅限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 |
边缘,节点 | 点,样条类型 | 节点的位置或样条控制点。 仅限neato,fdp。 | ||
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 |
指定等级之间的间距。 仅限dot,twopi。 |
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 (节点) |
指定用作布局中心的节点。 仅限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 | "" |
指定 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 | "" |
附加到边尾部的工具提示注释。 仅限 cmap 和 svg。 | |
tailURL |
边缘 | escString | "" |
如果定义,tailURL 将作为边的尾部标签的一部分输出。 仅限 map 和 svg。 |
|
target |
边缘,节点,图形,集群 | escString、string | <none> |
如果对象具有 URL ,则此属性确定使用浏览器的哪个窗口打开 URL。 仅限 map 和 svg。 |
|
TBbalance |
图形 | string | '' |
将浮动(松散)节点移动到的 等级。 仅限 dot。 | |
tooltip |
节点、边、簇、图 | escString | "" |
附加到节点、边、簇或图的工具提示(鼠标悬停文本)。 仅限 cmap 和 svg。 | |
truecolor |
图形 | bool | 内部位图渲染是否依赖于真彩色颜色模型或使用。 仅限位图输出。 | ||
URL |
边缘,节点,图形,集群 | escString | <none> |
合并到设备相关输出中的超链接。 仅限 map、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 之前,这受 问题 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。
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
}
}
- 图形
- 集群
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
值不匹配,则生成的输出可能非常奇怪。
无法将 HTML 类标签 与 Big-5 编码结合使用。
digraph G {
charset="UTF-8"
"🍔" -> "💩"
}
- 图形
class
类型: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。
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
对于后者,请使用 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"]
}
}
产生
另请参见
在以下方面有效- 边缘
- 节点
- 集群
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
如果为真,则通过 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
如果为真,则为最大(启发式)有向无环子图中的每条边生成约束,使得该边必须向下指向。
仅当 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
保证输出中的尺寸对应于正确的点数或英寸数。
- 图形
注意:仅限位图输出、svg。
edgehref
edgeURL
的同义词类型:escString,默认值:""
另请参见
在以下方面有效- 边缘
注意:仅限映射、svg。
edgetarget
edgeURL
链接的浏览器窗口类型:escString,默认值:<none>
如果边具有 URL
或 edgeURL
属性,则 edgetarget
确定浏览器的哪个窗口用于附加到边的非标签部分的 URL。
设置 edgetarget=_graphviz
将打开一个新窗口(如果它不存在),或者重新使用它(如果它存在)。
如果未定义,则使用 target
的值。
- 边缘
注意:仅限映射、svg。
在 Graphviz 代码库中搜索 "edgetarget"
edgetooltip
类型:escString,默认值:""
- 边缘
在 Graphviz 代码库中搜索 "edgetooltip"
edgeURL
类型:escString,默认值:""
edgeURL
覆盖为边定义的任何 URL
。
此外,edgeURL
用于靠近头部或尾部节点,除非分别被 headURL
或 tailURL
覆盖。
参见 限制。
另请参见
在以下方面有效- 边缘
注意:仅限映射、svg。
epsilon
类型:double,默认值:.0001 * # nodes
(mode == KK) , .0001
(mode == major) , .01
(mode == sgd)
如果所有能量梯度的长度平方小于 epsilon
,则算法停止。
- 图形
注意:仅限 neato。
esep
类型:addDouble | addPoint,默认值:+3
解释与 sep
中给出的相同。esep
通常应该严格小于 sep
。
- 图形
注意:仅限 neato、fdp、sfdp、osage、circo、twopi。
fillcolor
类型:color | colorList,默认值:lightgrey
(nodes) , black
(clusters)
假设 style=filled
,或填充的 arrowhead
。
如果 fillcolor
未定义,则使用 color
。(对于集群,如果 color
未定义,则使用 bgcolor
。)如果它未定义,则使用默认值,除了 shape=point
或当输出格式为 MIF
时,默认情况下使用黑色。
如果该值是 colorList
,则使用渐变填充。默认情况下,这是线性填充;设置 style=radial
将导致径向填充。目前,只使用两种颜色。如果第二种颜色(冒号之后)丢失,则使用默认颜色。
另请参见 gradientangle
属性以设置渐变角度。
请注意,集群会继承根图的属性(如果已定义)。因此,如果根图定义了 fillcolor
,这将覆盖为集群设置的 color
或 bgcolor
属性。
- 节点
- 边缘
- 集群
fixedsize
如果为 false
,则节点的大小由包含其标签和图像(如果有)所需的最小宽度和高度决定,边距由 margin
属性指定。
宽度和高度还必须至少与 width
和 height
属性指定的尺寸一样大,这些属性指定了这些参数的最小值。
如果设置为 true
,节点的大小仅由 width
和 height
属性的值指定,不会扩展以包含文本标签。如果标签(包含边距)无法容纳在这些限制内,将出现警告。
如果 fixedsize
属性设置为 shape
,width
和 height
属性也决定节点形状的大小,但标签可以大得多。在避免节点重叠时,标签和形状大小都会被使用,但所有指向节点的边都忽略标签,只与节点形状接触。如果标签太大,不会发出警告。
- 节点
fontcolor
类型:color,默认值:black
- 边缘
- 节点
- 图形
- 集群
fontname
类型:string,默认值:"Times-Roman"
这在很大程度上取决于输出格式,并且对于非位图输出(如 PostScript 或 SVG),还取决于图形显示或打印时字体的可用性。因此,最好依赖于普遍可用的字体面,例如 Times-Roman、Helvetica 或 Courier。
字体名称的解析方式还取决于处理字体名称解析的底层库。如果 Graphviz 使用 fontconfig 库 构建,则将使用后一个库来搜索字体。有关名称如何解析以及哪些字体可用的信息,请参阅命令 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 或 True Type 字体文件的名称。如果指定 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"]
}
}
- 边缘
- 节点
- 图形
- 集群
fontnames
类型:string,默认:""
如果 fontnames
未定义或为 svg
,输出将尝试使用已知的 SVG 字体名称。
例如,默认字体 Times-Roman
将映射到基本 SVG 字体 serif
。可以通过将 fontnames
设置为 ps
或 hd
来覆盖此设置。在前一种情况下,输出中将使用已知的 PostScript 字体名称(如 Times-Roman
)。在后一种情况下,将使用 fontconfig 字体约定。因此,Times-Roman
将被视为 Nimbus Roman No9 L
。最后两个选项对支持这些更丰富的字体名称空间的 SVG 查看器很有用。
- 图形
注意:仅限 svg。
fontpath
类型:string,默认值:<system-dependent>
如果 Graphviz 不是使用 fontconfig 库 构建的,则使用。
如果未设置 fontpath
,将检查环境变量 DOTFONTPATH
。
如果未设置 DOTFONTPATH
,将检查 GDFONTPATH
。
如果未设置 GDFONTPATH
,libgd 将使用其内置的字体路径。
请注意,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"]
}
}
- 边缘
- 节点
- 图形
- 集群
forcelabels
xlabels
,即使重叠类型:bool,默认值:true
如果为真,所有 xlabel
属性都将被放置,即使与节点或其他标签存在重叠。
- 图形
在 Graphviz 代码库中搜索 "forcelabels"
gradientangle
类型:int,默认值:0
,最小值:0
对于线性填充,颜色沿由角度和对象中心指定的线进行转换。对于径向填充,值为零会导致颜色从中心径向转换;对于非零值,颜色从由值指定的靠近对象周边的点进行转换。
如果未设置,默认角度为 0。
在以下方面有效- 节点
- 集群
- 图形
在 Graphviz 代码库中搜索 "gradientangle"
group
类型:string,默认:""
如果边的端点属于同一组,即具有相同的 group
属性,则设置参数以避免交叉并保持边直线。
- 节点
注意:仅限 dot。
head_lp
类型:point
在以下方面有效- 边缘
注意:仅供写入。
headclip
类型:bool,默认值:true
否则,边的末端将指向节点的中心,或者在适用的情况下,指向端口的中心。
在以下方面有效- 边缘
headhref
headURL
的同义词类型:escString,默认值:""
另请参见
在以下方面有效- 边缘
注意:仅限映射、svg。
headlabel
类型:lblString,默认值:""
参见 限制。
在以下方面有效- 边缘
headport
类型:portPos,默认值:center
在默认情况下,边将指向节点的中心,然后在节点边界处剪裁。
参见 限制。
在以下方面有效- 边缘
headtarget
headURL
链接的浏览器窗口类型:escString,默认值:<none>
如果边具有 headURL
,headtarget
决定使用浏览器的哪个窗口进行 URL。设置 headURL=_graphviz
将在窗口不存在时打开一个新窗口,或在窗口存在时重用该窗口。
如果未定义,将使用 target
的值。
- 边缘
注意:仅限映射、svg。
在 Graphviz 代码库中搜索 "headtarget"
headtooltip
类型:escString,默认值:""
仅在边具有 headURL
属性时使用。
另请参见
在以下方面有效- 边缘
在 Graphviz 代码库中搜索 "headtooltip"
headURL
headURL
将作为边头部标签的一部分输出类型:escString,默认值:""
此外,此值将在头部节点附近使用,覆盖任何 URL
值。
参见 限制。
另请参见
在以下方面有效- 边缘
注意:仅限映射、svg。
height
类型:double,默认值:0.5
,最小值:0.02
这被视为节点的初始最小高度。如果 fixedsize
为真,这将是节点的最终高度。否则,如果节点标签需要更多高度才能容纳,节点的高度将增加以包含标签。
如果输出格式为 dot
,则提供给 height
的值将是最终值。
如果节点形状是规则的,则宽度和高度将变得相同
- 如果显式设置了
width
和height
,则使用这两个值中的最大值。 - 如果显式设置了
width
或height
之一,则该值将用于width
和height
。 - 如果两者都没有显式设置,则使用两个默认值中的最小值。
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 坐标,坐标以磅为单位。 - SVG 图像文件必须包含 width 和 height 属性,通常作为 svg 元素的一部分。这些属性的值应采用浮点数的形式,后跟可选单位,例如
width="76pt"
。识别的单位分别为 in、px、pc、pt、cm 和 mm,代表英寸、像素、皮卡、磅、厘米和毫米。默认单位是磅。
与 shapefile
属性不同,图像被视为节点内容,而不是整个节点。特别是,图像可以包含在任何形状的节点中,而不仅仅是矩形。
仅支持本地资源的路径。如果要使用指向远程资源的 URL,请参阅 dot_url_resolve.py
脚本。
- 节点
imagepath
类型:string,默认:""
当由 image
属性指定或在 HTML 样式标签 中使用 IMG
元素时。
imagepath
应是一个目录名称列表,每个目录名称由分号 ;
(Windows)或冒号 :
(所有其他操作系统)分隔。
将使用找到具有给定名称文件的第一个目录来加载图像。
如果未设置 imagepath
,则图像文件的相对路径名将相对于当前工作目录进行解释。
- 图形
imagepos
类型: 字符串,默认: "mc"
imagepos
仅在图像小于包含节点时才起作用。
默认情况下,图像在水平和垂直方向上居中。
有效值
tl
- 左上角tc
- 顶部居中tr
- 右上角ml
- 中间左侧mc
- 中间居中 (默认)mr
- 中间右侧bl
- 左下角bc
- 底部居中br
- 右下角
- 节点
imagescale
通常,图像会使用其自然大小(参见 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
会调用一个两步过程,即去除重叠和拉直。
- 图形
注意:仅限 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"
如果未设置,则默认为边的 fontname
。
- 边缘
在 Graphviz 代码库中搜索 "labelfontname"
labelfontsize
headlabel
和 taillabel
的字体大小类型:double,默认值:14.0
,最小值:1.0
字体大小(以点为单位),用于 headlabel
和 taillabel
。
如果未设置,则默认为边的 fontsize
。
- 边缘
在 Graphviz 代码库中搜索 "labelfontsize"
labelhref
labelURL
的同义词类型:escString,默认值:""
另请参见
在以下方面有效- 边缘
注意:仅限映射、svg。
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
}
}
- 图形
- 集群
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]
}
- 节点
- 图形
- 集群
labeltarget
labelURL
链接的浏览器窗口类型:escString,默认值:<none>
如果边具有 URL
或 labelURL
属性,则此属性确定用于标签附加 URL 的浏览器窗口。
设置 labeltarget=_graphviz
会在窗口不存在时打开一个新窗口,或者在窗口存在时重新使用它。
如果未定义,将使用 target
的值。
- 边缘
注意:仅限映射、svg。
在 Graphviz 代码库中搜索 "labeltarget"
labeltooltip
类型:escString,默认值:""
- 边缘
在 Graphviz 代码库中搜索 "labeltooltip"
labelURL
labelURL
是用于边标签的链接类型:escString,默认值:""
labelURL
会覆盖为边定义的任何 URL
。
另请参见
在以下方面有效- 边缘
注意:仅限映射、svg。
landscape
类型:bool,默认:false
与 rotate=90
或 orientation=landscape
同义。
digraph {
landscape=true
a -> b
}
另请参见
在以下方面有效- 图形
layer
类型: layerRange,默认: ""
- 边缘
- 节点
- 集群
layerlistsep
layerRange
的属性拆分为范围列表的分隔符。类型: 字符串,默认: ","
- 图形
在 Graphviz 代码库中搜索 "layerlistsep"
layers
类型: layerList,默认: ""
然后,图将按单独的层输出。只有属于当前输出层的组件才会出现。
参见 如何使用绘图层(叠加层)。
在以下方面有效- 图形
layerselect
类型: layerRange,默认: ""
- 图形
在 Graphviz 代码库中搜索 "layerselect"
layersep
layers
属性拆分为层名称列表的分隔符。类型: 字符串,默认: ":\t "
- 图形
layout
类型:string,默认:""
指定要使用的 布局引擎 的名称,例如 dot
或 neato
。
通常,图形应独立于布局类型。但是,在某些情况下,将所需的布局类型嵌入到图形中可能很方便。
例如,包含来自布局的位置信息的图形可能想要记录关联的布局引擎是什么。
此属性优先于 -K
标志 或使用的实际命令名称。
- 图形
len
类型:双精度浮点数,默认值:1.0
(neato), 0.3
(fdp)
另请参见
在以下方面有效- 边缘
levels
类型:整数,默认值:INT_MAX
,最小值:0.0
- 图形
注意:仅限 sfdp。
levelsgap
类型:双精度浮点数,默认值:0.0
当 mode="ipsep"
或 mode=hier
时,指定 neato
中级别约束的严格程度。
较大的正值表示更严格的约束,这要求级别之间有更大的间隔。另一方面,负值将通过允许级别之间存在一些重叠来放宽约束。
在以下方面有效- 图形
注意:仅限 neato。
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。
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
标签中心位置,以点为单位。
在以下方面有效- 边缘
- 图形
- 集群
注意:仅供写入。
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。
lwidth
类型:双精度浮点数
在以下方面有效- 图形
- 集群
注意:仅供写入。
margin
类型:双精度浮点数 | 点,默认值:<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
}
}
- 节点
- 集群
- 图形
maxiter
类型:整数,默认值:100 * # 节点
(mode == KK), 200
(mode == major), 30
(mode == sgd), 600
(fdp)
- 图形
mclimit
类型:双精度浮点数,默认值:1.0
用于更改交叉最小化期间使用的 MinQuit
(默认值为 8)和 MaxIter
(默认值为 24)参数的乘法缩放因子。
这些对应于在退出之前没有改进的尝试次数以及每次传递中的最大迭代次数。
在以下方面有效- 图形
注意:仅限 dot。
mindist
类型:double,默认:1.0
,最小值:0.0
- 图形
注意:仅适用于 circo。
minlen
类型:整数,默认值:1
,最小值:0
另请参见
在以下方面有效- 边缘
注意:仅限 dot。
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
属性。)
-
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。
model
类型:字符串,默认值:shortpath
距离矩阵指定每对节点之间的理想距离。neato
尝试找到一个布局,该布局最能实现这些距离。默认情况下,它使用最短路径的长度,其中每条边的长度由其 len
属性给出。
- 如果
model="circuit"
,则 neato 使用电路电阻模型来计算距离。这往往会强调集群。 - 如果
model="subset"
,则 neato 使用子集模型。这将边长设置为仅为一个端点邻居的节点数量,然后计算最短路径。这有助于分离度数高的节点。
为了更好地控制距离,可以使用 model=mds
。在这种情况下,边的 len
用作其顶点之间的理想距离。
最短路径计算仅用于未通过边连接的节点对。因此,通过提供一个完全图,输入可以指定所有相关的距离。
在以下方面有效- 图形
注意:仅限 neato。
newrank
类型:bool,默认:false
dot
中的原始排名算法是对集群递归的。这可以产生更少的等级和更紧凑的布局,但有时会以将头部节点放置在比尾部节点更高的等级为代价。它还假设节点在单独的、不兼容的子图中没有受到约束。例如,节点不能既在集群中,又在 rank=same
中与不在集群中的节点约束。
这允许节点受到多个约束的影响。排名约束通常优先于边约束。
在以下方面有效- 图形
注意:仅限 dot。
nodesep
dot
中,nodesep
指定相同等级中两个相邻节点之间的最小间距,单位为英寸类型:双精度浮点数,默认值:0.25
,最小值:0.02
对于其他布局,nodesep
会影响单个节点上的循环或一对节点之间的多边之间的间距。
digraph {
nodesep=0.1;
node1; node2; node3;
}
digraph {
nodesep=0.5;
node1; node2; node3;
}
- 图形
nojustify
类型:bool,默认:false
默认情况下,多行标签的对齐方式是在有意义的最大上下文中完成的。因此,在多边形节点的标签中,左对齐的行将与节点的左侧对齐(按规定的 margin
偏移)。在记录节点中,左对齐行将与包含的字段列的左侧对齐。如果 nojustify=true
,则多行标签将在其自身的上下文中对齐。
例如,如果设置了 nojustify
,第一行标签很长,第二行较短且左对齐,则第二行将与第一行中最左边的字符对齐,而与节点的大小无关。
请参阅此示例,其中包含 \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
}
- 图形
- 集群
- 节点
- 边缘
normalize
以便第一个点位于原点,然后旋转布局,使第一条边的角度由 normalize
的值(以度为单位)指定。
如果 normalize
不是数字,则将其评估为布尔值,其中 true
对应于 0
度。
注意:由于属性首先被评估为数字,因此 0
和 1
不能用于 false
和 true
。
- 图形
注意:仅适用于 neato、fdp、sfdp、twopi、circo。
notranslate
类型:bool,默认:false
默认情况下,最终布局会被平移,使边界框的左下角位于原点。
如果某些节点被固定,或者用户运行 neato -n
,这可能会很烦人。
要避免这种平移,请将 notranslate=true
设置为 true
。
- 图形
注意:仅限 neato。
在 Graphviz 代码库中搜索 "notranslate"
nslimit
类型:双精度浮点数
nslimit
用于计算 节点 x 坐标
。
如果已定义,# 迭代次数 = nslimit * # 节点
;否则,# 迭代次数 = INT_MAX
。
- 图形
注意:仅限 dot。
nslimit1
类型:双精度浮点数
nslimit1
用于对节点进行排名。
如果已定义,# 迭代次数 = nslimit * # 节点
;否则,# 迭代次数 = INT_MAX
。
- 图形
注意:仅限 dot。
oneblock
类型: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。
ordering
类型:string,默认:""
如果 ordering="out"
,则节点的出边(即以该节点为尾节点的边)必须按照输入中定义的顺序从左到右出现。
如果 ordering="in"
,则节点的入边必须按照输入中定义的顺序从左到右出现。
如果定义为图形或子图形属性,则该值将应用于图形或子图形中的所有节点。
请注意,图形属性优先于节点属性。
在以下方面有效- 图形
- 节点
注意:仅限 dot。
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
节点首先使用 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
。在这种情况下,重叠消除约束会融入布局算法本身。注意:目前,这仅支持一层聚类。
除了 fdp
和 sfdp
外,布局都假设 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*"
情况并不完全正确。对于这些情况,正交排序仅在通过边相关的节点之间保留。
- 图形
注意:fdp、neato、sfdp、circo、twopi 专用。
overlap_scaling
类型:double,默认值:-4
,最小值:-1e+10
当 overlap=prism
时,布局将按此因子缩放,从而消除大量节点重叠,并使节点重叠消除更快,并且能够更好地保留图形的形状。
-
如果
overlap_scaling
为负数,则布局将按-1*overlap_scaling
乘以平均标签大小进行缩放。 -
如果
overlap_scaling
为正数,则布局将按overlap_scaling
进行缩放。 -
如果
overlap_scaling
为零,则不进行缩放。
- 图形
注意: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。
- 图形
packmode
类型:packMode,默认值:node
(参见 packMode
)。请注意,定义 packmode
将自动打开打包,就像设置了 pack=true
一样。
- 图形
pad
类型:double | point,默认值:0.0555
(4 点)
如果 pad
是单个 double,则 x 和 y 填充值都设置为与给定值相同。此区域是绘制的一部分,如果合适,将使用背景颜色填充。
通常,使用小的 pad
出于美观原因,尤其是在使用背景颜色时,以避免节点和边与绘制区域的边界相邻。
- 图形
page
如果只给出一个值,则该值同时用于宽度和高度。
如果设置了 page
并且它小于布局的大小,则将指定页面大小的矩形页面数组叠加在布局上,其原点在左下角对齐,从而将布局划分为页面。然后,页面按 pagedir
顺序逐个生成。
目前,page
仅适用于 PostScript 输出。对于其他类型的输出,使用其他工具将输出拆分为多个输出文件,或使用 viewport
生成多个文件。
- 图形
pagedir
类型:pagedir,默认值:BL
仅在设置了 page
并且适用时使用。
限制为 8 种行或列主顺序之一。
在以下方面有效- 图形
pencolor
类型:color,默认值:black
如果未定义 pencolor
,则使用 color
。
如果未定义 bgcolor
,则使用默认值。
请注意,聚类会继承根图形的属性(如果已定义)。因此,如果根图形定义了 pencolor
,则它将覆盖为聚类设置的 color
或 bgcolor
属性。
- 集群
penwidth
类型:double,默认:1.0
,最小值:0.0
包括边和聚类的边界。
penwidth
值由子聚类继承,并且对文本没有影响。
在 2008 年 1 月 31 日之前,penwidth=W
的效果是通过在 style
规范中包含 setlinewidth(W)
来实现的。
如果同时设置了两个属性,则使用 penwidth
。
- 集群
- 节点
- 边缘
peripheries
类型:int,默认值:<shape default>
(节点) , 1
(聚类) , 最小值:0
请注意,用户定义的形状 被视为一种框形状,因此默认外围值是 1,并且用户定义的形状将在边界矩形中绘制。将 peripheries=0
设置为关闭此功能。
peripheries=1
是聚类的最大值。
- 节点
- 集群
在 Graphviz 代码库中搜索 "peripheries"
pin
类型:bool,默认:false
如果为真并且节点在输入时具有 pos
属性,neato
或 fdp
将阻止节点从输入位置移动。此属性也可以在 pos
属性本身中指定(参见 point 类型)。
注意:由于实现上的一个缺陷,在 2014 年 2 月 27 日之前,最终坐标被转换为原点。因此,如果您查看(x)dot 或普通格式中给出的输出坐标,固定节点将不会具有与输入时相同的输出坐标。如果这很重要,一个简单的解决方法是维护固定节点的坐标。旧坐标和新坐标之间的向量差将给出平移,然后可以从所有适当的坐标中减去。
在 2014 年 2 月 27 日之后,可以通过在 neato
中设置 notranslate=true
来避免这种平移。但是,如果图形指定了 节点重叠移除 或纵横比 ratio
的改变,节点坐标可能仍然会改变。
- 节点
pos
类型:point | splineType
对于节点,位置表示节点的中心。在输出时,坐标以 点 为单位。
在 neato
和 fdp
中,pos
可用于设置节点的初始位置。默认情况下,坐标被假定为英寸。但是,可以使用 -s
命令行标志来指定不同的单位。由于输出坐标以点为单位,将由 Graphviz 程序布局的图形的输出输入到 neato
或 fdp
中几乎总是需要 -s
标志。
当使用 neato
时使用 -n
命令行标志时,假定位置已由一个布局程序设置,因此以点为单位。因此,neato -n
可以正确接受输入,而无需 -s
标志,实际上会忽略任何此类标志。
- 边缘
- 节点
quadtree
quadtree=true
等同于quadtree=normal
quadtree=false
等同于quadtree=none
quadtree=2
等同于quadtree=fast
- 图形
注意:仅限 sfdp。
quantum
quantum > 0.0
,节点标签尺寸将被四舍五入到量子值的整数倍类型:double,默认值:0.0
,最小值:0.0
- 图形
rank
类型:rankType
- 如果
rank="same"
,所有节点都放置在同一等级上。 - 如果
rank="min"
,所有节点都放置在最小等级上。 - 如果
rank="source"
,所有节点都放置在最小等级上,并且最小等级上的唯一节点属于具有rank="source"
或rank="min"
的某个子图。
类似的标准适用于 rank="max"
和 rank="sink"
。
(注意:最小等级是最顶端或最左侧,最大等级是最底端或最右侧。)
有关更多信息,请查看 Stack Overflow 上的此答案
在以下方面有效- 子图
注意:仅限 dot。
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。
ranksep
类型:double | doubleList,默认值:0.5
(dot) , 1.0
(twopi) ,最小值:0.02
在 dot
中,以英寸为单位设置所需的等级间隔。
这是第一个等级的节点底部与下一个等级的节点顶部之间的最小垂直距离。如果该值包含 equally
,则所有等级的中心等距分布。请注意,两种设置都是可能的,例如,ranksep="1.2 equally"
。
在 twopi
中,此属性指定同心圆的径向间隔。对于 twopi
,ranksep
也可以是一个双精度数列表。第一个双精度数指定内圆的半径;第二个双精度数指定从第一个圆到第二个圆的半径增量;等等。如果圆的数量超过数字的数量,则最后一个数字将用作剩余圆的增量。
- 图形
ratio
请注意,这会在强制执行 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
中有效。
- 图形
rects
类型:rect
在以下方面有效- 节点
注意:仅供写入。
regular
类型:bool,默认:false
如果为真,则多边形的顶点将位于以节点中心为中心的圆周上。
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
- 图形
注意:仅限位图输出、svg。
在 Graphviz 代码库中搜索 "resolution"
root
类型:string | bool,默认值:<none>
(图形) , false
(节点)
布局的中心将是生成的生成树的根。
- 作为图形属性,它给出节点的名称。
- 作为节点属性,它指定应使用该节点作为中心节点。
在 twopi
中,root
实际上将是中心节点。在 circo
中,包含该节点的块将在其连接组件的绘图中居中。如果未定义,twopi
将选择一个最中心的节点,circo
将选择一个随机节点。
如果根属性被定义为空字符串,twopi
将将其重置为选定为根节点的节点的名称。
对于 twopi
,可以有多个根,可能每个组件一个。如果组件中的多个节点被标记为 root
,twopi
将选择一个。
- 图形
- 节点
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
如果只给出一个数字,那么该数字将同时缩放宽度和高度。
在以下方面有效- 图形
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
}
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"
。shapefile 中的图像必须是矩形的。支持的图像格式以及文件使用方式的精确语义取决于 输出格式。有关更多详细信息,请参阅 图像格式 和 外部 PostScript 文件。
这种用法有一个例外:如果 shape="epsf"
,则 shapefile
给出一个文件名,其中包含 PostScript 中节点的定义。定义的图形必须包含所有节点内容,包括任何所需的边界。有关更多详细信息,请参阅 外部 PostScript 文件。
仅支持本地资源的路径。如果要使用指向远程资源的 URL,请参阅 dot_url_resolve.py
脚本。
- 节点
showboxes
类型:int,默认值:0
,最小值:0
如果 showboxes=1
,则在 PostScript 中打印指南框,在路线的开头,如果 showboxes=2
,则在路线的结尾。(调试,仅限 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
如果只给出一个数字,则该数字将用于宽度和高度。
如果定义了并且绘图大于给定大小,则绘图将统一缩小,使其适合给定大小。
如果 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
指定边应该绘制为轴对齐线段的折线。目前,路由不处理端口,也不处理点上的边标签。
(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,默认:""
与 class
结合使用,使用 CSS 选择器对元素进行样式设置。
另请参见
在以下方面有效- 图形
注意:仅限 svg。
在 Graphviz 代码库中搜索 "stylesheet"
tail_lp
类型:point
该位置指示标签的中心。
在以下方面有效- 边缘
注意:仅供写入。
tailclip
类型:bool,默认值:true
否则,边的末端将指向节点的中心,或端口的中心(如果适用)。
在以下方面有效- 边缘
tailhref
tailURL
的同义词。类型:escString,默认值:""
另请参见
在以下方面有效- 边缘
注意:仅限映射、svg。
taillabel
类型:lblString,默认值:""
参见 限制。
在以下方面有效- 边缘
tailport
类型:portPos,默认值:center
参见 限制。
在以下方面有效- 边缘
tailtarget
tailURL
链接的浏览器窗口类型:escString,默认值:<none>
如果边具有 tailURL
,则 tailtarget
确定浏览器使用的哪个窗口用于 URL。
设置 tailtarget=_graphviz
将在窗口不存在的情况下打开一个新窗口,或者在窗口存在的情况下重新使用它。
如果未定义,将使用 target
的值。
- 边缘
注意:仅限映射、svg。
在 Graphviz 代码库中搜索 "tailtarget"
tailtooltip
类型:escString,默认值:""
仅当边具有 tailURL
属性时使用。
- 边缘
在 Graphviz 代码库中搜索 "tailtooltip"
tailURL
tailURL
将作为边尾部标签的一部分输出类型:escString,默认值:""
此外,此值将用于尾部节点附近,覆盖任何 URL
值。
参见 限制。
另请参见
在以下方面有效- 边缘
注意:仅限映射、svg。
target
URL
,则此属性确定浏览器使用的哪个窗口用于 URL。类型:escString | string,默认值:<none>
参见 W3C 文档。
在以下方面有效- 边缘
- 节点
- 图形
- 集群
注意:仅限映射、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 将使用对象的 标签
(如果已定义)。
请注意,如果 标签
是记录规范或类似 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
。输出模型将尽可能使用输入模型。
使用调色板可以在创建位图时减少内存使用量,并减少输出文件的大小。
通常,只有在图使用超过 256 种颜色时才需要指定truecolor
模型。但是,如果与颜色调色板一起使用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
允许控制边的各个部分。
如果两条边的活动区域重叠,则哪个区域占主导地位是不确定的。
另请参见
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
用于将图形按比例放大以允许在Voronoi 技术中扩展的边距的因子。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]
}
- 边缘
width
类型:double,默认:0.75
,最小值:0.01
这被视为节点的初始最小宽度。如果fixedsize
为真,则这将是节点的最终宽度。否则,如果节点标签需要更多宽度才能适合,则节点的宽度将增加以包含标签。
如果输出格式为dot
,则给定width
的值将是最终值。
如果节点形状是规则的,则宽度和高度将变得相同
- 如果显式设置了宽度或高度,则使用该值。
- 如果显式设置了宽度和高度,则使用两个值中的最大值。
- 如果两者都没有显式设置,则使用两个默认值中的最小值。
digraph {
"d" # default
"1in" [width=1]
"2in" [width=2]
}
- 节点
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"]
}
- 边缘
- 节点
xlp
类型:point
该位置指示标签的中心。
在以下方面有效- 节点
- 边缘
注意:仅供写入。
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。
- 节点