fbpx
维基百科

DOT语言

DOT語言是一種文本图形描述语言。它提供了一种简单的描述图形的方法,并且可以为人类和计算机程序所理解。DOT语言文件通常是具有.gv或是.dot文件扩展名

很多程序都可以处理DOT文件。其中的一些,例如dotneatotwopicirco, fdpsfdp,会读取DOT文件并将之渲染成为图形格式。其它的一些,比如gvprgcaccyclicccompssccmaptred,可以读取DOT文件并对它代表的图形进行一些处理。类似于GVeditleftydottygrappa则提供了交互式的界面。以上程序大部分都包括在了Graphviz软件包中。

语法 编辑

图形类别 编辑

无向图 编辑

 
一张无向图

在最简单的应用中,DOT语言可以用来描述一张无向图。无向图显示了对象间最简单的关系,例如人之间的友谊。使用关键字graph开始一张无向图的定义,并用大括号包含要描述的节点,双连字号(--)被用来描述节点间的关系。另外,一行的末尾需要加上分号(;)。

 graph graphname {  a -- b -- c;  b -- d;  } 

有向图 编辑

 
一张有向图

类似于无向图,DOT语言也可以用来描述一张有向图,类似于流程图树状图。其语法与无向图相似,但要在图的最开始使用关键字'digraph',并用箭头(->)表示节点直接的关系。

 digraph graphname {  a -> b -> c;  b -> d; } 

属性 编辑

 
一张有属性的图

DOT语言中,可以对节点和边添加不同的属性。这些属性可以控制节点和边的显示样式,例如颜色,形状和线形。可以在语句和句尾的分号间放置一对方括号,并在其中中放置一个或多个属性-值对。多个属性可以被逗号和空格(, )分开。节点的属性被放置在只包含节点名称的表达式后。

 graph graphname {  // label属性可以改变节点的显示名称  a [label="Foo"];  // 节点形状被改变了  b [shape=box];  // a-b边和b-c边有相同的属性  a -- b -- c [color=blue];  b -- d [style=dotted];  } 

注释 编辑

DOT语言支持C语言C++风格的单行与多行注释。另外,也支持Shell脚本风格的以#开头的注释。

 // 单行注释  /* 多行   释 */  # 如此的行也会被忽略。 

一个简单的例子 编辑

以下是一个描述了乙烷化学键结构的示例脚本。这是一个无向图,包括了上述解释的节点属性。

 graph ethane {  C_0 -- H_0 [type=s];  C_0 -- H_1 [type=s];  C_0 -- H_2 [type=s];  C_0 -- C_1 [type=s];  C_1 -- H_3 [type=s];  C_1 -- H_4 [type=s];  C_1 -- H_5 [type=s];  } 

支持的程序 编辑

DOT语言定义了图,但没有提供渲染图的工具。这里列出了一些可以用来渲染,查看与修改DOT图的程序:

  • Graphviz - 一组用来修改和渲染图的软件库和程序。
  • OmniGraffle 可以导入DOT语言的一个子集,生成一个可编辑的文档,但转换结果不能被导出成为DOT文件。

限制 编辑

 
一张被不当渲染的图片

可以用DOT定义图形的位置细节,虽然不是所有实现了DOT语言的工具都可以适当的处理位置属性。因此,取决于所使用的工具,用户必须依赖于自动布局算法(可能造成非预期的输出)或者繁琐的手工布局节点属性。

例如:

digraph g {  node [shape=plaintext]  A1 -> B1  A2 -> B2  A3 -> B3    A1 -> A2 [label=f]  A2 -> A3 [label=g]  B2 -> B3 [label="g'"]  B1 -> B3 [label="(g o f)'" tailport=s headport=s]  { rank=same; A1 A2 A3 }  { rank=same; B1 B2 B3 }  } 
 
在移动了标签和箭头并改变子脚本的字体大小之后,图形变得正常了

上图有两个问题。右边的方形不是完美的正方形,而且标签(g o f)的位置有问题。

这些问题可以用Inkscape或其它的SVG编辑器修正。在某些情况下,也可以利用pos属性定义位置来修正这样的问题。

参见 编辑

外部链接 编辑

dot语言, 此條目没有列出任何参考或来源, 2019年2月21日, 維基百科所有的內容都應該可供查證, 请协助補充可靠来源以改善这篇条目, 无法查证的內容可能會因為異議提出而被移除, dot語言是一種文本图形描述语言, 它提供了一种简单的描述图形的方法, 并且可以为人类和计算机程序所理解, 文件通常是具有, gv或是, dot的文件扩展名, 很多程序都可以处理dot文件, 其中的一些, 例如dot, neato, twopi, circo, fdp与sfdp, 会读取dot文件并将之渲染成为图形格式, 其它的一些. 此條目没有列出任何参考或来源 2019年2月21日 維基百科所有的內容都應該可供查證 请协助補充可靠来源以改善这篇条目 无法查证的內容可能會因為異議提出而被移除 DOT語言是一種文本图形描述语言 它提供了一种简单的描述图形的方法 并且可以为人类和计算机程序所理解 DOT语言文件通常是具有 gv或是 dot的文件扩展名 很多程序都可以处理DOT文件 其中的一些 例如dot neato twopi circo fdp与sfdp 会读取DOT文件并将之渲染成为图形格式 其它的一些 比如gvpr gc accyclic ccomps sccmap和tred 可以读取DOT文件并对它代表的图形进行一些处理 类似于GVedit lefty dotty和grappa则提供了交互式的界面 以上程序大部分都包括在了Graphviz软件包中 目录 1 语法 1 1 图形类别 1 1 1 无向图 1 1 2 有向图 1 2 属性 1 3 注释 2 一个简单的例子 3 支持的程序 4 限制 5 参见 6 外部链接语法 编辑图形类别 编辑 无向图 编辑 nbsp 一张无向图在最简单的应用中 DOT语言可以用来描述一张无向图 无向图显示了对象间最简单的关系 例如人之间的友谊 使用关键字graph开始一张无向图的定义 并用大括号包含要描述的节点 双连字号 被用来描述节点间的关系 另外 一行的末尾需要加上分号 graph graphname a b c b d 有向图 编辑 nbsp 一张有向图类似于无向图 DOT语言也可以用来描述一张有向图 类似于流程图和树状图 其语法与无向图相似 但要在图的最开始使用关键字 digraph 并用箭头 gt 表示节点直接的关系 digraph graphname a gt b gt c b gt d 属性 编辑 nbsp 一张有属性的图DOT语言中 可以对节点和边添加不同的属性 这些属性可以控制节点和边的显示样式 例如颜色 形状和线形 可以在语句和句尾的分号间放置一对方括号 并在其中中放置一个或多个属性 值对 多个属性可以被逗号和空格 分开 节点的属性被放置在只包含节点名称的表达式后 graph graphname label属性可以改变节点的显示名称 a label Foo 节点形状被改变了 b shape box a b边和b c边有相同的属性 a b c color blue b d style dotted 注释 编辑 DOT语言支持C语言与C 风格的单行与多行注释 另外 也支持Shell脚本风格的以 开头的注释 单行注释 多行 注 释 如此的行也会被忽略 一个简单的例子 编辑以下是一个描述了乙烷化学键结构的示例脚本 这是一个无向图 包括了上述解释的节点属性 graph ethane C 0 H 0 type s C 0 H 1 type s C 0 H 2 type s C 0 C 1 type s C 1 H 3 type s C 1 H 4 type s C 1 H 5 type s 支持的程序 编辑DOT语言定义了图 但没有提供渲染图的工具 这里列出了一些可以用来渲染 查看与修改DOT图的程序 Graphviz 一组用来修改和渲染图的软件库和程序 OmniGraffle 可以导入DOT语言的一个子集 生成一个可编辑的文档 但转换结果不能被导出成为DOT文件 限制 编辑 nbsp 一张被不当渲染的图片可以用DOT定义图形的位置细节 虽然不是所有实现了DOT语言的工具都可以适当的处理位置属性 因此 取决于所使用的工具 用户必须依赖于自动布局算法 可能造成非预期的输出 或者繁琐的手工布局节点属性 例如 digraph g node shape plaintext A1 gt B1 A2 gt B2 A3 gt B3 A1 gt A2 label f A2 gt A3 label g B2 gt B3 label g B1 gt B3 label g o f tailport s headport s rank same A1 A2 A3 rank same B1 B2 B3 nbsp 在移动了标签和箭头并改变子脚本的字体大小之后 图形变得正常了上图有两个问题 右边的方形不是完美的正方形 而且标签 g o f 的位置有问题 这些问题可以用Inkscape或其它的SVG编辑器修正 在某些情况下 也可以利用pos属性定义位置来修正这样的问题 参见 编辑Graphviz 图 lisp2dot 将类似Lisp的程序树转换成DOT语言 可以用于遗传编程 外部链接 编辑DOT语言入门和特性 页面存档备份 存于互联网档案馆 示例画廊 页面存档备份 存于互联网档案馆 图形示范 页面存档备份 存于互联网档案馆 Boost Graph Library 页面存档备份 存于互联网档案馆 Grappa Drawing Package 在线SVG PNG GIF JPG图形发布器 取自 https zh wikipedia org w index php title DOT语言 amp oldid 74532797, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。