dot -v的解释
这条命令输出了关于 Graphviz 工具版本 9.0.0 的一些信息
dot - graphviz version 9.0.0 (20230911.1827)
这表示您正在使用的 Graphviz 工具的版本号是 9.0.0,版本发布日期为 20230911.1827
。
libdir = “C:\Program Files\Graphviz\bin”
这指示 Graphviz 工具的库文件所在的目录为 "C:\Program Files\Graphviz\bin"
。
Activated plugin library: gvplugin_dot_layout.dll
这表示已激活了名为 “gvplugin_dot_layout.dll” 的插件库。
Using layout: dot:dot_layout
这表明工具正在使用名为 "dot_layout"
的布局引擎。
Activated plugin library: gvplugin_core.dll
这表示已激活了名为 “gvplugin_core.dll” 的核心插件库。
Using render: dot:core
这表示正在使用名为 “core” 的渲染引擎
。
Using device: dot:dot:core
这表示正在使用名为 “dot:core” 的设备
。
The plugin configuration file: C:\Program Files\Graphviz\bin\config6 was successfully loaded.
这表示插件配置文件
“C:\Program Files\Graphviz\bin\config6” 已成功加载。
render : cairo dot dot_json fig gdiplus json json0 map mp pic pov ps svg tk xdot xdot_json
这是描述所有可用的渲染引擎
,其中包括 Cairo、dot、dot_json、fig 等。
layout : circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
这是描述所有可用的布局引擎
,其中包括 circo、dot、fdp、neato 等。
textlayout : textlayout
这表示存在名为 “textlayout” 的文本布局引擎
。
device : bmp canon cmap cmapx cmapx_np dot dot_json emf emfplus eps fig gif gv imap imap_np ismap jpe jpeg jpg json json0 metafile mp pdf pic plain plain-ext png pov ps ps2 svg tif tiff tk xdot xdot1.2 xdot1.4 xdot_json
这是描述所有可用的设备
列表,比如 bmp、gif、eps、svg 等。
loadimage : (lib) bmp eps gif jpe jpeg jpg png ps svg
这是描述所有可加载的图像类型
,包括 bmp、eps、png、svg 等。
各种基础概念的解释
在Graphviz中,render
、layout
、textlayout
、device
和loadimage
各自代表了图形处理
和渲染过程
中的不同方面和功能,它们之间存在明确的区别:
- render(渲染器):
渲染器负责将图形数据
转换为可视化的输出
。
在Graphviz中,渲染器决定了图形的最终表现形式,如颜色
、线条样式
等。
例如,dot
渲染器可以将图形渲染为DOT语言描述的格式
,
而cairo
渲染器则可以使用Cairo图形库
进行渲染。
- layout(布局算法):
布局算法决定了图形中节点的排列方式
。
Graphviz提供了多种布局算法
,如dot
、neato
、twopi
等,每种算法都有其特定的排列规则和适用场景
。
布局算法的选择会直接影响图形的可读性和美观性
。
- textlayout(文本布局):
文本布局主要关注图形中文本的排列和显示
方式。
虽然Graphviz中的文本布局可能不像布局算法那样多样,但它仍然是图形呈现中一个重要的组成部分。
正确的文本布局可以提高图形的可读性
,帮助用户更好地理解图形所表达的信息。
- device(输出设备或格式):
设备或格式指的是图形输出的目标类型
。
Graphviz支持多种输出格式和设备,如PNG、PDF、SVG等。
这些输出格式和设备使得用户可以将图形保存为不同的文件类型
,或者在不同的显示设备上查看图形。
设备,就好像是,文件类型一样的。
- loadimage(加载图像):
加载图像功能允许Graphviz从外部文件中加载图像,并将其嵌入到图形中。
这为用户提供了更多的自定义和扩展能力,使得图形可以包含更丰富的内容。
Graphviz支持加载多种格式的图像文件,如BMP
、EPS
、GIF
等。
从外部加载图像
在Graphviz中,从外部文件中加载图像通常是通过在DOT语言脚本
中使用image
属性来实现的。
image
属性允许你为节点或边指定一个图像文件,该图像文件将被嵌入到生成的图形中。
以下是一个简单的例子,展示了如何在Graphviz的DOT脚本中加载一个外部图像并将其用作节点的形状:
可以参考下面的代码:
digraph Demo01 {
// 设置节点形状为无,因为我们将使用图像作为节点
node [shape=none];
// 为节点A设置图像,并指定图像的宽度和高度
A [image="chenzihan.png", label=""];
B [image="zhangjiani.png", label=""];
// 一条从A到B的边
A -> B [color="#ea4335", len=15, weight=15, arrowhead=odiamond];
}
使用Graphviz的neato
命令来渲染这个DOT脚本,为什么要使用neato呢?这是因为,我想要控制边的长度。
neato -Tsvg Demo01.dot -o Demo01.svg
我找了两张图片,一张是陈紫函的,一张是张嘉倪的,然后简单地将这两张图片连接起来,具体的效果如下所示: