之前需要在Scala中用到类似Python的graphviz库的功能,用来在MXNet中可视化网络结构,但是在网上搜索了一下,没有找到好用的库,所以就自己去把python的graphviz库中的主要功能用 Scala 实现了一下,尽量的保持接口和python库的一致,也方便从python移植相关的代码到 Scala,然后我把这个小项目开源了,地址是
有兴趣的朋友可以去试用一下。接下来我会结合代码,用几个例子来介绍如何使用这个小工具 Grapphviz4S,例子参考自这篇博客
1、简单例子
1.1、简单图例
首先来看第一个例子,Scala代码如下:
![](https://img.haomeiwen.com/i4529179/ecd9e99ddd4a4edf.png)
生成的结果如下:
![](https://img.haomeiwen.com/i4529179/e0cb2e3063d6c186.png)
1.2、简单图例2
第二个例子和上面的一样,但是布局不同,Scala代码如下:
![](https://img.haomeiwen.com/i4529179/ae7362153810eb38.png)
生成的结果如下:
![](https://img.haomeiwen.com/i4529179/ddf83f57a1b9fabf.png)
1.3、简单有向图
第三个例子是一个简单的有向图,Scala代码如下:
![](https://img.haomeiwen.com/i4529179/803d97b2607e350e.png)
生成的结果如下:
![](https://img.haomeiwen.com/i4529179/adf523f21b43cdbb.png)
1.4、带标签的简单有向图
第四个例子给有向图的边加上标签,对应的Scala代码如下:
![](https://img.haomeiwen.com/i4529179/56a8fa93498caed2.png)
生成的结果如下:
![](https://img.haomeiwen.com/i4529179/ffe3bbac17f55672.png)
1.5、总结
Scala代码:
![](https://img.haomeiwen.com/i4529179/c099b9967e234e97.png)
生成的结果如下:
![](https://img.haomeiwen.com/i4529179/040c60cc2ba7ceae.png)
2、高级例子
2.1、少写一点代码
单独地去定义每一个节点的属性很浪费时间,下面这个技巧能够让你coding的速度快一点。
Scala代码如下:
![](https://img.haomeiwen.com/i4529179/89e94965474fdfbc.png)
结果如下:
![](https://img.haomeiwen.com/i4529179/5c8f7dce3bce3dc2.png)
2.2、html
Scala代码如下:
![](https://img.haomeiwen.com/i4529179/603372645d884060.png)
结果如下:
![](https://img.haomeiwen.com/i4529179/4fb52d10165c43f1.png)
2.3、有限状态机
Scala代码如下:
![](https://img.haomeiwen.com/i4529179/25f365e3657a1e5b.png)
结果如下:
![](https://img.haomeiwen.com/i4529179/ac8869a86974edfd.png)
2.4、数据流示意图
Scala代码如下:
![](https://img.haomeiwen.com/i4529179/8dd5c7c600481fcb.png)
结果如下:
![](https://img.haomeiwen.com/i4529179/af97f213cd029d41.png)
2.5、数据流示意图2
Scala代码如下:
![](https://img.haomeiwen.com/i4529179/9e1735530dc7c06f.png)
![](https://img.haomeiwen.com/i4529179/1f83ce7a9efa8b10.png)
结果如下:
![](https://img.haomeiwen.com/i4529179/47986b755e02838b.png)
2.6、对象继承
Scala代码如下:
![](https://img.haomeiwen.com/i4529179/9d67a868250d9104.png)
![](https://img.haomeiwen.com/i4529179/73b898bf7375267f.png)
结果如下:
![](https://img.haomeiwen.com/i4529179/5bd2f389f91517c2.png)
2.7、关系型实体
Scala代码如下:
![](https://img.haomeiwen.com/i4529179/a695de019bff5920.png)
结果:
![](https://img.haomeiwen.com/i4529179/281db47b0ecf6c27.png)
通过以上例子的介绍,相信读者都能够了解如何使用这个小工具了,不过这个小工具还有很多
需要完善的地方,也欢迎感兴趣的朋友一起来完善它。
网友评论