graphviz使用语法
时间: 2025-05-19 22:15:16 浏览: 19
### Graphviz 使用语法教程
Graphviz 是一种强大的图形描述语言,主要用于生成有向图和无向图。其核心是通过 `.dot` 文件定义节点、边及其属性。以下是关于 Graphviz 的基本语法规则:
#### 1. 图的基本结构
Graphviz 中的图由 `graph` 或 `digraph` 关键字声明。
- 如果使用 `graph`,表示创建的是无向图。
- 如果使用 `digraph`,表示创建的是有向图。
示例代码如下:
```dot
digraph G {
A -> B;
}
```
上述代码定义了一个名为 `G` 的有向图,其中有一个从节点 `A` 到节点 `B` 的箭头[^1]。
#### 2. 节点与边的定义
节点可以通过简单的名称来定义,也可以附加属性。例如:
```dot
node [shape=box];
A -> B [label="Edge Label"];
C [color=red, label="Node C"];
```
此代码设置了默认节点形状为矩形 (`shape=box`),并定义了一条带标签的边以及一个红色的节点[^1]。
#### 3. 子图 (Subgraphs)
为了更好地组织复杂图,可以使用子图(subgraph)。子图允许将一组节点分组在一起。例如:
```dot
subgraph cluster_0 {
style=filled;
color=lightgrey;
node [style=filled,color=white];
A -> B -> C;
}
D -> E;
```
这段代码创建了一个带有灰色背景的子图,并将其命名为 `cluster_0`。注意,子图中的节点会自动继承某些样式设置[^1]。
#### 4. 属性设置
Graphviz 支持丰富的属性配置,用于调整图的表现形式。常见的属性包括但不限于:
- **全局属性**: 可以为整个图设定统一风格。例如:`rankdir=LR` 将改变布局方向为水平排列。
- **节点属性**: 如颜色(`color`)、字体大小(`fontsize`)等。
- **边属性**: 包括线条宽度(`penwidth`)、箭头类型(`arrowhead`)等。
具体应用实例见下文代码块:
```dot
digraph Example {
rankdir=TB; // 设置垂直布局
graph [bgcolor=pink]; // 整体背景色设为粉色
node [shape=circle fontsize=12]; // 默认圆形节点,字号12pt
edge [color=blue penwidth=2]; // 边线蓝色加粗显示
Start -> Process1 -> Decision;
Decision -> End [label=yes];
Decision -> Loopback [label=no];
}
```
#### 5. 输出格式
完成 `.dot` 文件编写后,可通过命令行或其他工具渲染成图片文件。常用输出格式包括 PNG、SVG 和 PDF 等。例如,在终端运行以下命令可生成 SVG 文件:
```bash
dot -Tsvg input.dot -o output.svg
```
---
###
阅读全文
相关推荐


















