Graphviz解决图论简单画图

Graphviz解决最简单图论画图

参考文章:十分钟学会graphviz画图-简书
这里给出最最最最常用且简单的说明

1.安装

1.1下载

假设你是windows用户,那么你可以从这个网站获得最简单最简单的安装包,记得下“.msi”文件。
Windows Packages官网下载

然后你就可以享受到常规的exe安装体验。不过安装的时候要记得你安装的路径。

1.2环境变量配置

这里只给出用命令行进行编译的配置方式。如果你想用VS Code或者Sublime Text的话,请自行查找方式。

找到你的环境变量-百度是个好人

找到之后,点进path的那一个,编辑它。需要把你安装的目录比如D:/graphviz的bin文件放进来,也就是添加D:/graphviz/bin到PATH这个环境变量中。

2.写图文件

常见的后缀就是.dot,标准格式也是这个。我们需要把图在这个文件内按照它的规则描述出来。

2.1注释

它像C++一样,可以用\\,\**\来表示注释内容,也可以用#表示注释内容。

2.2建立一个图

首先,可以使用

graph [graphname]{
	\\Do something.
}//无向图

digraph [graphname]{
	\\Do something.
}//有向图

具体实例如下:

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

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

2.3点

在图中,单独写一个变量名就是点;如果不声明,也是可以直接用的。声明的好处在于可以改动这个点的一些属性,例如形状和标题、颜色这种。

graph g1{
	a;//a就是一个点
}

2.4边

按照图论的定义,给出边的两个端点,然后给出其连接关系即可。

graph g1{
	a -- b;// -- 是无向连接,用在graph上
}

digraph g2{
	a -> b;// -> 是有向连接,用在digraph上
	a -> b[dir=none];//显示出来是无箭头的,跟无向连接看起来是一样的
}

2.5属性设置

(di)graph graphname{
	object[attribute=value,attribute=value....];
}

2.6高级使用

以下内容引用自开头所讲的参考:

  • Node, Edge and Graph Attributes(属性)
  • Node Shapes(节点形状)
  • Arrow Shapes(箭头形状)

3.编译图文件

类似于mingw最基础的命令,执行编译。首先打开cmd,然后转到你操作的文件夹

dot --help

这个可以看所有指令,这里给出最常用的编译方法。

[type1] -T[type2] source.dot -o source.[type2]

type1是布局方式,常用的有

  1. dot 默认布局方式,常用于有向图
  2. fdp 用于无向图
  3. circo 圆环布局
  4. neato 基于spring-model(又称force-based)算法
  5. twopi 径向布局

type2是生成图片的形式,常用的有png,jpg,svg,ps。

4.实例

//a.dot
digraph first{
	a -> b;
	a -> b[dir=both];
	a -> c;
}
//命令行
dot -Tpng a.dot -o first.png

最后得到的图片
Graphviz解决图论简单画图_第1张图片

5.引用

根据你需要的地址,这里给一个免费上传到网上照片的网站。路过图床。

参考文章:十分钟学会graphviz画图-简书

你可能感兴趣的:(集合论与图论)