这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令点,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
dot - 用于绘制有向图的过滤器
neato - 用于绘制无向图的过滤器
twopi - 用于图形径向布局的过滤器
circo - 用于图形圆形布局的过滤器
fdp - 用于绘制无向图的过滤器
sfdp - 用于绘制大型无向图的过滤器
拼凑 - 过滤树图
概要
点 [选项] [文件]
尼阿托 [选项] [文件]
双皮 [选项] [文件]
圆 [选项] [文件]
PDF文件 [选项] [文件]
顺丰 [选项] [文件]
拼布 [选项] [文件]
商品描述
这些是用于绘制图形的程序集合。 实际上只有一个主要的
程序; 作为插件实现的特定布局算法。 因此,他们在很大程度上共享
所有相同的命令行选项。 点 绘制有向图。 它在 DAG 上运行良好
和其他可以绘制为层次结构的图形。
尼阿托 使用“弹簧”模型绘制无向图(参见 Kamada 和 Kawai,信息
处理信函 31:1,1989 年 XNUMX 月)。
双皮 使用径向布局绘制图形(参见 G. Wills, Symposium on Graph Drawing GD'97,
1997 年 XNUMX 月)。 基本上,选择一个节点作为中心并放置在原点。 这
其余节点放置在以原点为中心的一系列同心圆上,
每个与前一个圆的固定径向距离。 所有节点距离 1
中心放在第一个圆上; 所有节点与第一个节点的距离为 1
圆放在第二个圆上; 等等。
马戏团 使用圆形布局绘制图形(参见 Six 和 Tollis、GD '99 和 ALENEX '99,以及
Kaufmann 和 Wiese,GD '02。)该工具识别双连通分量并绘制
圆上组件的节点。 块切割点树然后使用
递归径向算法。 通过放置为最小化圆内的边缘交叉
圆的周长上尽可能多的边。 特别是,如果组件是
外平面,组件将具有平面布局。
如果一个节点属于多个非平凡双连通分量,则布局将节点
在其中之一。 默认情况下,这是在搜索中找到的第一个非平凡组件
从根组件。
PDF文件 使用“弹簧”模型绘制无向图。 它依赖于一个力导向的
本着 Fruchterman 和 Reingold 精神的方法(参见软件实践与经验
21(11),1991 年,第 1129-1164 页)。
顺丰 还使用上述“spring”模型绘制无向图,但它使用
一种在相当短的时间内生成大型图形布局的多尺度方法。
拼布 将图形绘制为平方树图(参见 M. Bruls 等人,“Squarified
treemaps”,Proc. Joint Eurographics and IEEE TCVG Symp. on Visualization, 2000, pp.
33-42)。 图的簇用于指定树。
OUTPUT FORMATS
Graphviz 为其输出渲染器使用了一个可扩展的插件机制,所以看看
dot 支持的输出格式可以使用“dot -Txxx”(其中 xxx 是
一种不太可能的格式)并检查警告消息。 此外,插件机制支持
输出格式的多种实现。 要查看可用的变体,请使用,
例如:``dot -Tpng:'' 并强制使用特定的变体,例如:``dot
-Tpng:gd''
传统上,Graphviz 支持以下内容:
-Tps (后记),
-Tsvg -Tsvgz (结构化矢量图形),
-图 (XFIG 图形),
-Tpng -Tgif (位图图形),
-地图 (具有非空“href”的每个节点或边缘的 httpd 服务器的图像映射文件
属性。),
-Tcmapx (用于 html 和 xhtml 的客户端图像映射)。
可以在以下位置找到其他不太常见或更特殊用途的输出格式
//http://www.graphviz.org/content/output-formats.
可以从以下位置找到为给定输出格式提供支持的替代插件
将“:”附加到格式后产生的错误消息。 例如 -Tpng: 第一个插件
列出的始终是默认值。
这款 -P switch 可用于生成插件支持的所有输出变量的图形
在graphviz的本地安装中。
图形 文件 语言
这是图形文件语言的概要,通常使用扩展名 .gv,为
图表:
[严格](图形|有向图) 姓名 { 语句列表 }
是顶层图。 如果图形是 严格,则不允许多条边
在相同的节点对之间。 如果是有向图,表示为 有向图, 然后
此 边缘 必须是“->”。 如果是无向 图形 那么 边缘 必须是 ” - ”。
声明可能是:
姓名=VAL;
节点 [姓名=VAL];
边缘 [姓名=VAL];
设置默认图形、节点或边属性 姓名 至 VAL. 任何子图、节点或边
出现在此之后继承了新的默认属性。
n0 [名称0=val0,名称1=val1,...];
创建节点 n0 (如果它不存在)并根据
可选列表。
n0 边缘 n1 边缘 ... 边缘 nn [名称0=val0,名称1=val1,...];
在节点之间创建边 n0, n1,..., nn 并根据
可选列表。 根据需要创建节点。
[子图 姓名] { 语句列表 }
创建子图。 可以使用子图代替 n0,..., nn 在上述声明中
创建边缘。 [子图 姓名] 是可选的; 如果丢失,则为子图分配一个
内部名称。
注释可能是 /*C-like*/ 或 //C++-like。
属性名称和值是普通(C 风格)字符串。 以下部分
描述控制图形布局的属性。
可以在以下位置找到更完整的语言描述
http://www.graphviz.org/content/dot-language.
图形, NODE AND 边缘 ATTRIBUTES
Graphviz 使用 姓名=折扣值 属性,附加到图、子图、节点和边,
来定制布局和渲染。 我们在下面列出了更突出的属性。 这
完整列表可在 http://www.graphviz.org/content/attrs.
图表 Attributes
大小=“x,y" 以英寸为单位指定图形的最大边界框。
比率=f 将纵横比设置为 f 这可能是一个浮点数,或其中之一
关键词 填, 压缩或 汽车.
布局=发动机 指示首选布局引擎(“dot”、“neato”、fdp 等)覆盖
命令的基本名称或 -K 命令行选项的默认值。
边距=f 设置页边距(包括在页面大小中)。
节点ep=f 设置节点之间的最小间隔。
等级表=f 设置等级之间的最小间隔。
订购=输出 根据文件序列限制子图中的出边顺序。
等级目录=LR|RL|BT 请求从左到右、从右到左或从下到上的绘图。
等级=相同 (或 分钟 or 最大) 在子图中约束其节点的等级分配。 如果
子图的名称有前缀 簇,其节点绘制在一个不同的矩形中
布局。 集群可以嵌套。
旋转 = 90 设置横向模式。 (方向=土地 向后兼容但已过时。)
中心=n 非零值在页面上居中绘图。
颜色=色值 设置前景色(BGCOLOR 用于背景)。
href =“网址” 图像映射文件的默认 url; 在 PostScript 文件中,所有的基本 URL
相对 URL,由 Acrobat Distiller 3.0 及更高版本识别。
网址=“网址” (“URL”是“href”的同义词。)
样式表=“文件.css” 在 -Tsvg 和 -Tsvgz 输出中包含对样式表的引用。
被其他格式忽略。
花键 如果设置为 true,边绘制为样条。 如果设置为 折线, 边被绘制
作为折线。 如果设置为 邻,边绘制为正交多段线。 在所有这些
在这种情况下,节点可能不会重叠。 如果 样条=false or 样条=线,边绘制为
线段。 默认是 true 对于点,和 false 对于所有其他布局。
(neato-specific 属性)
开始=VAL. 请求随机初始放置并为随机数生成器提供种子。 如果
VAL 不是整数,进程 ID 或当前时间用作种子。
ε=n. 设置求解器的截止。 默认值为 0.1。
(twopi 特定的 属性)
根=CTR. 这指定要用作布局中心的节点。 如果不
指定的, 双皮 将随机选择离叶节点最远的节点之一,
其中叶节点是度数为 1 的节点。如果不存在叶节点,则任意节点为
选为中心。
等级表=VAL. 指定环序列之间的径向距离(以英寸为单位)。 这
默认值为 0.75。
重叠=模式. 这指定了什么 双皮 如果任何节点重叠,应该这样做。 如果模式是
“错误的”,程序使用 Voronoi 图来调整节点以消除重叠。 如果
模式是 “规模”,布局均匀放大,保留节点大小,直到节点没有
更长的重叠。 后一种技术去除重叠,同时保持对称性和
结构,而前者更紧凑地去除重叠但破坏对称性。 如果
模式是 “真正” (默认),不进行重新定位。
(循环特异的 属性)
根=节点名. 指定出现在根块中的节点的名称。 如果图形是
断开连接, 根 node 属性可用于指定额外的根块。
思想家=折扣值. 设置所有节点之间的最小间隔。 如果没有指定那么 马戏团
使用默认值 1.0。
(fdp 特定的 属性)
K=VAL. 在布局中设置默认的理想节点分隔。
最大值=VAL. 设置用于布局图形的最大迭代次数。
开始=VAL. 调整没有指定位置的节点的随机初始位置。 如果
VAL is 是一个整数,它用作随机数生成器的种子。 如果 VAL is
不是整数,是系统随机生成的整数,例如进程 ID 或当前时间,
用作种子。
Node Attributes
高度=d or 宽度=d 设置最小高度或宽度。 添加 固定大小=真 迫使这些
是实际大小(文本标签被忽略)。
形状=记录 多边形 每股收益 内置形状
内置多边形 可 纯文本 椭圆 椭圆 圆 鸡蛋 三角形 框 钻石 梯形
平行四边形 房子 六边形 八角形 注意 标签 box3d 元件,等等。 (多边形是
由以下节点属性定义或修改: 定期, 外围, 双方,
取向, 失真 和 歪斜.) 每股收益 使用节点的 shape文件 属性作为路径
要为节点形状自动加载的外部 EPSF 文件的名称。
参见 http://www.graphviz.org/content/node-shapes 有关节点形状的完整描述。
标签=文本 哪里 文本 可能包括转义的换行符 \n、\l 或 \r 用于中心、左侧和
右对齐的行。 字符串 '\N' 值将被节点名称替换。 这
字符串 '\G' 值将被图形名称替换。 记录标签可能包含递归
由 { | 分隔的框列表}. 标签中的端口标识符由尖括号引起
>. 在图形文件中,使用冒号(例如, 节点 0:端口 28).
Graphviz 还支持特殊的类似 HTML 的标签来构建复杂的节点内容。 一种
这些的完整描述在 http://www.graphviz.org/content/node-shapes#html。
字体大小=n 将标签类型大小设置为 n 点。
字体名=姓名 设置标签字体系列名称。
颜色=色值 设置轮廓颜色,如果 style=filled 和默认填充颜色
填色 未指定。
填充颜色=色值 设置样式=填充时的填充颜色。 如果未指定,则
当 style=filled 时的 fillcolor 默认与轮廓颜色相同。
字体颜色=色值 设置标签文本颜色。
A 色值 也许 ”时、时、时" (色调,饱和度,亮度)0 之间的浮点数
和 1,或 X11 颜色名称,例如 白色 黑色 红色 墨绿色 蓝色 黄色 品红 青色 or
原木色,或“#rrggbb" (红色的, 绿色, 蓝色, 2 十六进制 字符 每个) 计算值。
样式=填充 固体 虚线 虚线 无所畏惧 invis 或任何 Postscript 代码。
href =“网址” 设置图像映射、PostScript 和 SVG 文件中节点的 url。 这
子字符串 '\N' 和 '\G' 的替换方式与节点标签相同
属性。 此外,子字符串 '\L' 替换为节点标签字符串。
网址=“网址” (“URL”是“href”的同义词。)
目标=“目标” 是客户端图像映射和 SVG 的目标字符串,当节点
有一个网址。 目标字符串用于确定使用浏览器的哪个窗口
为网址。 将其设置为“_graphviz”将打开一个新窗口(如果还没有)
存在,或者如果存在则重用它。 如果目标字符串为空,则默认,则无目标
属性包含在输出中。 子串 '\N' 和 '\G' 在
与节点标签属性的方式相同。 另外子字符串 '\L' 是
替换为节点标签字符串。
工具提示=“工具提示” 是客户端图像映射和 SVG 的工具提示字符串,在以下情况下有效
节点有一个 URL。 工具提示字符串默认与标签字符串相同,但
这个属性允许没有标签的节点仍然有工具提示,从而允许更密集
图表。 子串 '\N' 和 '\G' 的替换方式与节点相同
标签属性。 此外,子字符串 '\L' 替换为节点标签
字符串。
以下属性仅适用于多边形形状节点:
常规=n if n 非零则多边形是规则的,即关于 x 对称
和 y 轴,否则多边形采用标签的纵横比。
内置多边形 已经不是常规的通过此属性变为常规。
内置多边形 已经是常规的不受影响(即它们不能被制作
不对称)。
外围=n 设置围绕多边形绘制的外围线的数量。 这个值
取代外围线的数量 内置多边形.
边=n 设置多边形的边数。 n<3 导致椭圆。 这个
属性被忽略 内置多边形.
方向=f 从逆时针方向设置多边形的第一个顶点的方向
垂直,以度为单位。 f 可能是一个浮点数。 标签的方向是
不受此属性影响。 此属性添加到的初始方向
内置多边形。
失真=f 设置顶部变宽和底部变窄的量
多边形(相对于其方向)。 -1 和 +1 之间的浮点值是
建议。 此属性被忽略 内置多边形.
偏斜=f 设置顶部的右位移量和左位移量
多边形的底部(相对于其方向)。 -1 和 -XNUMX 之间的浮点值
建议 +1。 此属性被忽略 内置多边形.
(循环特异的 属性)
根=真假. 这指定包含给定节点的块被视为
布局中生成树的根。
(fdp 特定的 属性)
针=VAL。 如果 VAL 为“真”,节点将保持在其初始位置。
边缘 Attributes
分钟=n 哪里 n 是一个整数因子,适用于边缘长度(正常的等级
边缘,或平面边缘的最小节点间隔)。
重量=n 哪里 n 是边的整数成本。 大于 1 的值往往会缩短
边缘。 排序节点时忽略权重 0 平边。
标签=文本 哪里 文本 可能包含转义的换行符 \n、\l 或 \r 以表示居中、左侧或
右对齐的行。 如果在标签中找到子字符串 '\T' ,它将被替换为
tail_node 名称。 如果在标签中找到子字符串 '\H',它将被替换为
head_node 名称。 如果在标签中找到子字符串 '\E' 值,它将被替换为:
tail_node_name->head_node_name 如果在标签中找到子字符串 '\G',它将是
由图形名称替换。 或通过:tail_node_name--head_node_name 用于无向图。
字体大小=n 将标签类型大小设置为 n 点。
字体名=姓名 设置标签字体系列名称。
字体颜色=色值 设置标签文本颜色。
风格=实心 虚线 虚线 无所畏惧 invis
颜色=色值 设置边缘的线条颜色。
颜色=颜色值列表 ':' 分隔的列表 色值 创建平行边,一个边
对于每种颜色。
目录=转发 背部 都 没有 控制箭头方向。
尾夹,头夹=假 禁用端点形状裁剪。
href =“网址” 设置图像映射、PostScript 和 SVG 文件中节点的 url。 这
子串 '\T', '\H', '\E' 和 '\G' 的替换方式与边缘相同
标签属性。 此外,子字符串 '\L' 替换为边标签
字符串。
网址=“网址” (“URL”是“href”的同义词。)
目标=“目标” 是客户端图像映射和 SVG 的目标字符串,当边缘
有一个网址。 如果目标字符串为空,默认,则没有目标属性
包含在输出中。 子串 '\T'、'\H'、'\E' 和 '\G' 在
与边缘标签属性的方式相同。 另外子字符串 '\L' 是
替换为边缘标签字符串。
工具提示=“工具提示” 是客户端图像映射的工具提示字符串,当边缘具有
一个网址。 工具提示字符串默认与边缘标签字符串相同。 这
子串 '\T', '\H', '\E' 和 '\G' 的替换方式与边缘相同
标签属性。 此外,子字符串 '\L' 替换为边标签
字符串。
箭头,箭头尾=无, 正常 投资, 点, 点, 输入点, invodot, 三通, 空的, 空缺,
打开, 半开, 钻石, 钻石, 框, 盒子, 乌鸦.
箭头大小 (norm_length=10,norm_width=5, inv_length=6,inv_width=7,dot_radius=2)
头标,尾标=字符串 用于端口标签。 标签字体颜色,标签字体名称,标签字体大小
用于头部和尾部标签。 子串 '\T'、'\H'、'\E' 和 '\G' 在
与边缘标签属性的方式相同。 另外子字符串 '\L' 是
替换为边缘标签字符串。
头文件=“网址” 设置图像映射、PostScript 和 SVG 文件中头部端口的 url。 这
子串 '\T', '\H', '\E' 和 '\G' 的替换方式与边缘相同
标签属性。 此外,子字符串 '\L' 替换为边标签
字符串。
头网址=“网址” (“headURL”是“headhref”的同义词。)
头部目标=“头目标” 是客户端图像映射和 SVG 的目标字符串,有效
当边缘头有一个 URL 时。 headtarget 字符串用于确定哪个窗口
浏览器用于 URL。 如果headtarget字符串为空,默认,则
headtarget 默认值与边的目标值相同。 子串 '\T', '\H',
'\E' 和 '\G' 的替换方式与边缘标签属性的替换方式相同。
此外,子字符串 '\L' 替换为边标签字符串。
头部工具提示=“工具提示” 是客户端图像映射的工具提示字符串,当头部有效时
端口有一个 URL。 工具提示字符串默认与 headlabel 字符串相同。
子串 '\T'、'\H' 和 '\E' 的替换方式与边的替换方式相同
标签属性。 此外,子字符串 '\L' 替换为边标签
字符串。
尾参考=“网址” 在 imagemap、PostScript 和 SVG 文件中设置尾端口的 url。 这
子串 '\T', '\H', '\E' 和 '\G' 的替换方式与边缘相同
标签属性。 此外,子字符串 '\L' 替换为边标签
字符串。
尾网址=“网址” (“tailURL”是“tailhref”的同义词。)
尾目标=“尾目标” 是客户端图像映射和 SVG 的目标字符串,有效
当边缘尾部有一个 URL 时。 tailtarget 字符串用于确定哪个窗口
浏览器用于 URL。 如果tailtarget字符串为空,默认,则
tailtarget 默认与边的目标值相同。 子串 '\T', '\H',
'\E' 和 '\G' 的替换方式与边缘标签属性的替换方式相同。
此外,子字符串 '\L' 替换为边标签字符串。
尾部工具提示=“工具提示” 是客户端图像映射的工具提示字符串,当尾部有效时
端口有一个 URL。 工具提示字符串默认与尾标字符串相同。
子串 '\T', '\H', '\E' 和 '\G' 的替换方式与
边缘标签属性。 此外,子字符串 '\L' 替换为边标签
字符串。
标签距离 和 标签角 (逆时针度数)指定头部和尾部的位置
标签。
装饰 从边缘到标签画线。
同头,同尾 使用平均值将具有相同值的边指向同一个端口
着陆点。
约束=假 导致在等级分配时忽略边。
层=id or 身份证:身份证 或“全部”设置边缘的活动层。 空字符串表示没有
层(不可见)。
(neato-specific 属性)
w=f 将边的权重(弹簧常数)设置为给定的浮点值。 这
默认为 1.0; 较大的值使边缘更趋向于其最佳长度。
长度=f 设置边的最佳长度。 默认值为 1.0。
(fdp 特定的 属性)
重量=f 将边的权重设置为给定的浮点值。 默认为 1.0;
较大的值使边缘更趋向于其最佳长度。
命令行 配置
-G 设置默认图形属性。
-N 设置默认节点属性。
-E 设置默认的边属性。 例子: -Gsize="7,8" -Nshape=框 -字体大小=8
-l文件 加载自定义 PostScript 库文件。 通常这些定义自定义形状或
样式。 如果 -l 由自身给出,标准库被省略。
-T郎 如上所述设置输出语言。
-n[1|2] (no-op) 如果设置,neato 假设节点已经定位并且所有节点
有一个 pos 属性给出位置。 然后它执行一个可选的调整
删除节点-节点重叠,取决于重叠属性的值,计算
边缘布局,取决于 花键 属性,并在
适当的格式。 如果提供了 num,则会发生以下操作:
数量 = 1
相当于 -n。
数量 > 1
使用指定的节点位置,无需调整以删除节点 - 节点重叠,并使用
pos 属性已经指定的任何边缘布局。 neato 计算边缘布局
对于任何没有 pos 属性的边。 像往常一样,边缘布局由
花键 属性。
-K布局 覆盖命令名称隐含的默认布局引擎。
-O 根据输入文件名和 -T 格式自动生成输出文件名。
-P 生成当前可用插件的图表。
-v (verbose) 打印各种对调试有用的信息。
-c 配置插件。
-m 内存测试(观察顶部没有增长,完成后杀死)。
-q水平 集 水平 of 消息 抑制。 这款 默认 is 1.
-s比例尺 规模 输入 by 比例尺, 此 默认 is 72.
-y 在输出中反转 y 坐标。
-V (version) 打印版本信息并退出。
-? 打印用法并退出。
有关可用命令行选项的完整说明,请访问
http://www.graphviz.org/content/command-line-invocation.
示例
有向图 test123 {
a -> b -> c;
一个 -> {xy};
b [形状=盒子];
c [label="hello\nworld",color=blue,fontsize=24,
fontname="Palatino-Italic",fontcolor=red,style=filled];
a -> z [label="hi", weight=100];
x -> z [label="multi-line\nlabel"];
边缘 [样式=虚线,颜色=红色];
b -> x;
{等级=相同; bx}
}
图 test123 {
a——b——c;
一——{xy};
x -- c [w=10.0];
x -- y [w=5.0,len=3];
}
洞穴
边样条线可能会无意中重叠。
平边标签略有破损。 集群间边缘标签完全损坏。
由于采用了无约束优化,节点框可能会重叠或接触
不相关的边。 所有现有的弹簧嵌入器似乎都有这个限制。
固定节点或调整边长和权重的合理尝试可能会导致
不稳定。
作者
斯蒂芬·C·诺斯[电子邮件保护]>
埃姆登·R·甘斯纳[电子邮件保护]>
约翰·C·埃尔森[电子邮件保护]>
胡一帆[电子邮件保护]>
位图驱动程序(PNG、GIF 等)由 Thomas Boutell 提供,http://www.boutell.com/gd>
Truetype 字体渲染器来自 Freetype 项目(David Turner、Robert Wilhelm 和
Werner Lemberg)(可以通过以下方式联系 [电子邮件保护]).
使用 onworks.net 服务在线使用 dot