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高级使用
以下内容引用自开头所讲的参考:
3.编译图文件
类似于mingw最基础的命令,执行编译。首先打开cmd,然后转到你操作的文件夹
dot --help
这个可以看所有指令,这里给出最常用的编译方法。
[type1] -T[type2] source.dot -o source.[type2]
type1是布局方式,常用的有
- dot 默认布局方式,常用于有向图
- fdp 用于无向图
- circo 圆环布局
- neato 基于spring-model(又称force-based)算法
- 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
最后得到的图片
5.引用
根据你需要的地址,这里给一个免费上传到网上照片的网站。路过图床。