create account

每天进步一点点:学习使用Graphviz by oflyhigh

View this thread on: hive.blogpeakd.comecency.com
· @oflyhigh ·
$73.77
每天进步一点点:学习使用Graphviz
最近发现一个很好玩的软件,叫做Graphviz,它可以通过简单的语言来描述结构图、流程图、关系图等,并自动生成相应的图像。我在考虑使用它来帮我生成一些思维导图。


![image.png](https://images.hive.blog/DQmPSm6XSHc2ifAFfnDkePeHe4yEBgQAi9Lak2aQ9Dge1dt/image.png)


# 安装

我们可以在https://www.graphviz.org/download/ 页面来下载适合我们系统的版本,我计划在Windows中使用它,所以下载的是`graphviz-9.0.0 (64-bit) EXE installer`。

安装过程很简单,一顿下一步即可。

![b0f20c63feb7604194f938e6e5eede2.png](https://images.hive.blog/DQmYw2KMcrcQCZ3V5kMaZwuTwTkQg3ZYASwwo5abvNAUxVY/b0f20c63feb7604194f938e6e5eede2.png)


![4641343f02c76371c85a13110a25ef0.png](https://images.hive.blog/DQmQ8jEDsSaGjQ8nH66Qgoc4AmaD8rf57tfKmgoHTcNbMtD/4641343f02c76371c85a13110a25ef0.png)


![6977285f1ce98859c75904f7888e6f6.png](https://images.hive.blog/DQmREStR5whtjmQnVN2GywvdLKu2Bvn4T5c9JYmQAthBDdi/6977285f1ce98859c75904f7888e6f6.png)
(此处略作一些修改)

![65f5a48357e1d84b378b6212da40d82.png](https://images.hive.blog/DQmeh9MEoQ11H2kdBRkdXNi9JVu3G1frMLDDVSUTmviDvRD/65f5a48357e1d84b378b6212da40d82.png)


![7422ad14b79b5f5ab56f925deb8d66d.png](https://images.hive.blog/DQmQWRbtCDGLAjzbqLsRb8umiwPSneBzC4hqW75EuLCJjep/7422ad14b79b5f5ab56f925deb8d66d.png)


![f8649b55462e4bbc31c1d9e8bfddf12.png](https://images.hive.blog/DQmPknhxwq1N8bpjionvNoAeTm9ini8WD7gTTPeBT3vzbf2/f8649b55462e4bbc31c1d9e8bfddf12.png)

安装完成。

但是安装过后我发现一些小BUG,比如说它既没有添加桌面图标,也没有在开始菜单中写入快捷方式。不过还好程序是安装上了,而且相应的环境变量也给设置好了。

# 简单使用

现在我们已经安装好了Graphviz,就可以用它来帮我们绘制各种想要的图形啦。

原则上我们可以使用命令行来生成图形,比如下边这句指令:
>`echo 'digraph { a -> b }' | dot -Tsvg > output.svg`

原则上将会为我们生成一个这样一个svg格式的图片:
![image.png](https://images.hive.blog/DQmeF52zK8e8SMyP9GtY9EdeDdnu1S3PifYfqLTbvjAuQsZ/image.png)

但是很遗憾的是,Windows下的`echo`指令和Linux下的echo指令有着非常大的差异,导致两者行为上极度不一致。我用了几近一整天的时间,想解决这个问题,但是直到最后都没有找到解决方案,只能无奈的放弃了。

那么我们要如何使用命令行呢?答案是先把我们用于描述图形的内容,保存为一个`.dot`文件,比如将下列语句:
>`digraph { a -> b }`

保存为simple.dot,然后执行如下语句:
>`dot -Tsvg simple.dot > output.svg`

就会成功生成上述图片。

# DOT  语言

DOT语言是用于定义 Graphviz 节点、边、图、子图和簇的抽象语法。

有关DOT语言的内容,大家请直接参考https://graphviz.org/doc/info/lang.html,上边的`digraph { a -> b }`就是DOT语言的一个简单示例。

通常上述示例也被改写成`digraph { Hello -> World }`,这样,同其它语言一样,我们也有了[DOT语言的Hello World示例](https://graphviz.org/Gallery/directed/hello.html)。


![image.png](https://images.hive.blog/DQmabmHu4Z6ae1SMB4ssA2FugUvzC9zYa87oT2VQPd12K6p/image.png)

# 复杂应用

以下DOT脚本显示了一个略为复杂的应用
```
graph Transparency {
	layout=neato
	start=11 // empiric value to set orientation
	bgcolor="#0000ff11"
	node [shape=circle width=2.22 label="" style=filled]
	5 [color="#0000ff80"]
	6 [color="#ee00ee80"]
	1 [color="#ff000080"]
	2 [color="#eeee0080"]
	3 [color="#00ff0080"]
	4 [color="#00eeee80"]
	1 -- 2 -- 3 -- 4 -- 5 -- 6 -- 1
}
```
来自:https://graphviz.org/Gallery/neato/transparency.html

它将会生成如下图案:
![image.png](https://images.hive.blog/DQmPSm6XSHc2ifAFfnDkePeHe4yEBgQAi9Lak2aQ9Dge1dt/image.png)

Graphviz网站上包含很多这样的示例,你可以在https://graphviz.org/gallery/ 浏览这些示例,并进行调整使用。

# 问题

使用Graphviz的时候,遇到了很多问题,之前命令行无法工作是一个,还有一些其它的问题,比如生成PNG格式图像时,中文字符无法正常显示。

还有就是有一个`gvedit.exe`号称是其自带的简单编辑器,但是我一直没有找到,哎,愁死个人。

这些问题又耗费我大半天时间(浪费别人的时间等于谋财害命),最后我决定不死磕了,能绕开的就绕开,能不用的就不用。

毕竟总体来讲Graphviz还是让我很满意的。


# 相关链接

* [Graphviz](https://graphviz.org/)
* [DOT Language](https://graphviz.org/doc/info/lang.html)
* [Partially Transparent Colors](https://graphviz.org/Gallery/neato/transparency.html)
* [Is gvedit depreciated?](https://forum.graphviz.org/t/is-gvedit-depreciated/349)
* [Windows : Where is GVedit.exe?](https://forum.graphviz.org/t/windows-where-is-gvedit-exe/204)
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 195 others
properties (23)
authoroflyhigh
permlinkgraphviz
categoryhive-105017
json_metadata{"tags":["cn","life","blog","graphviz","flow","chart","sketch"],"image":["https://images.hive.blog/DQmPSm6XSHc2ifAFfnDkePeHe4yEBgQAi9Lak2aQ9Dge1dt/image.png","https://images.hive.blog/DQmYw2KMcrcQCZ3V5kMaZwuTwTkQg3ZYASwwo5abvNAUxVY/b0f20c63feb7604194f938e6e5eede2.png","https://images.hive.blog/DQmQ8jEDsSaGjQ8nH66Qgoc4AmaD8rf57tfKmgoHTcNbMtD/4641343f02c76371c85a13110a25ef0.png","https://images.hive.blog/DQmREStR5whtjmQnVN2GywvdLKu2Bvn4T5c9JYmQAthBDdi/6977285f1ce98859c75904f7888e6f6.png","https://images.hive.blog/DQmeh9MEoQ11H2kdBRkdXNi9JVu3G1frMLDDVSUTmviDvRD/65f5a48357e1d84b378b6212da40d82.png","https://images.hive.blog/DQmQWRbtCDGLAjzbqLsRb8umiwPSneBzC4hqW75EuLCJjep/7422ad14b79b5f5ab56f925deb8d66d.png","https://images.hive.blog/DQmPknhxwq1N8bpjionvNoAeTm9ini8WD7gTTPeBT3vzbf2/f8649b55462e4bbc31c1d9e8bfddf12.png","https://images.hive.blog/DQmeF52zK8e8SMyP9GtY9EdeDdnu1S3PifYfqLTbvjAuQsZ/image.png","https://images.hive.blog/DQmabmHu4Z6ae1SMB4ssA2FugUvzC9zYa87oT2VQPd12K6p/image.png"],"links":["https://www.graphviz.org/download/"],"app":"hiveblog/0.1","format":"markdown"}
created2023-10-19 10:13:18
last_update2023-10-19 10:13:18
depth0
children11
last_payout2023-10-26 10:13:18
cashout_time1969-12-31 23:59:59
total_payout_value36.904 HBD
curator_payout_value36.862 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length3,398
author_reputation6,454,286,455,572,137
root_title每天进步一点点:学习使用Graphviz
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,122,922
net_rshares162,654,520,728,626
author_curate_reward""
vote details (259)
@deanliu ·
這個好... 👍
properties (22)
authordeanliu
permlinkre-oflyhigh-s2s877
categoryhive-105017
json_metadata{"tags":["hive-105017"],"app":"peakd/2023.10.1"}
created2023-10-19 15:25:57
last_update2023-10-19 15:25:57
depth1
children2
last_payout2023-10-26 15:25:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length8
author_reputation3,113,678,527,128,027
root_title每天进步一点点:学习使用Graphviz
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,129,263
net_rshares0
@oflyhigh ·
来呀,一起学习呀
properties (22)
authoroflyhigh
permlinks2tnjr
categoryhive-105017
json_metadata{"app":"hiveblog/0.1"}
created2023-10-20 09:55:09
last_update2023-10-20 09:55:09
depth2
children1
last_payout2023-10-27 09:55:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length8
author_reputation6,454,286,455,572,137
root_title每天进步一点点:学习使用Graphviz
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,150,752
net_rshares0
@deanliu ·
腦子不好使了... 😆
properties (22)
authordeanliu
permlinkre-oflyhigh-s2to1t
categoryhive-105017
json_metadata{"tags":["hive-105017"],"app":"peakd/2023.10.1"}
created2023-10-20 10:05:54
last_update2023-10-20 10:05:54
depth3
children0
last_payout2023-10-27 10:05:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length11
author_reputation3,113,678,527,128,027
root_title每天进步一点点:学习使用Graphviz
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,150,971
net_rshares0
@love5200 ·
DOT,咋这么熟呢,我默默地打开币安查了一下DOT的价格,目前3.617U一个😂😂
properties (22)
authorlove5200
permlinkre-oflyhigh-20231019t18363456z
categoryhive-105017
json_metadata{"tags":["cn","life","blog","graphviz","flow","chart","sketch"],"app":"ecency/3.0.36-vision","format":"markdown+html"}
created2023-10-19 10:36:33
last_update2023-10-19 10:36:33
depth1
children0
last_payout2023-10-26 10:36:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length41
author_reputation552,263,018,054,577
root_title每天进步一点点:学习使用Graphviz
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,123,397
net_rshares0
@lovelingling ·
我感觉这个一点都不好玩,因为即使给我玩,我也不会玩。哈哈哈
properties (22)
authorlovelingling
permlinkre-oflyhigh-20231019t195859462z
categoryhive-105017
json_metadata{"tags":["hive-105017","cn","life","blog","graphviz","flow","chart","sketch"],"app":"ecency/3.0.19-mobile","format":"markdown+html"}
created2023-10-19 11:59:00
last_update2023-10-19 11:59:00
depth1
children2
last_payout2023-10-26 11:59:00
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length29
author_reputation733,266,995,230,770
root_title每天进步一点点:学习使用Graphviz
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,124,729
net_rshares0
@tvb ·
不难用的,等 你需要的时候记得有这个,真的好用啊
properties (22)
authortvb
permlinks2tiie
categoryhive-105017
json_metadata{"app":"hiveblog/0.1"}
created2023-10-20 08:06:15
last_update2023-10-20 08:06:15
depth2
children1
last_payout2023-10-27 08:06:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length24
author_reputation35,644,933,157,559
root_title每天进步一点点:学习使用Graphviz
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,148,992
net_rshares0
@lovelingling ·
呵呵,好好,谢谢一姐
properties (22)
authorlovelingling
permlinkparama-1697796767137
categoryhive-105017
json_metadata""
created2023-10-20 10:12:51
last_update2023-10-20 10:12:51
depth3
children0
last_payout2023-10-27 10:12:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length10
author_reputation733,266,995,230,770
root_title每天进步一点点:学习使用Graphviz
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,151,113
net_rshares0
@marygong77777 ·
真棒!
properties (22)
authormarygong77777
permlinkparama-1697718962018
categoryhive-105017
json_metadata""
created2023-10-19 12:36:03
last_update2023-10-19 12:36:03
depth1
children0
last_payout2023-10-26 12:36:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length3
author_reputation422,221,775,373,968
root_title每天进步一点点:学习使用Graphviz
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,125,307
net_rshares0
@tvb ·
$0.65
o哥我最近也用这个了,我在debox上玩了个诗词飞花令,整理诗词接龙的时候,用别的软件都死机了,最后我找到了这个graphviz,超级好用,我一下就爱上了graphviz
![2.jpg](https://images.hive.blog/DQmVruKiHteuWfDBcqE7d6wvZyqE5wMtjMUvqGCbCHCyZvf/2.jpg)
👍  ,
properties (23)
authortvb
permlinks2tihl
categoryhive-105017
json_metadata{"image":["https://images.hive.blog/DQmVruKiHteuWfDBcqE7d6wvZyqE5wMtjMUvqGCbCHCyZvf/2.jpg"],"app":"hiveblog/0.1"}
created2023-10-20 08:05:45
last_update2023-10-20 08:05:45
depth1
children1
last_payout2023-10-27 08:05:45
cashout_time1969-12-31 23:59:59
total_payout_value0.324 HBD
curator_payout_value0.325 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length174
author_reputation35,644,933,157,559
root_title每天进步一点点:学习使用Graphviz
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,148,984
net_rshares1,444,337,729,136
author_curate_reward""
vote details (2)
@oflyhigh ·
厉害了
properties (22)
authoroflyhigh
permlinks2tnla
categoryhive-105017
json_metadata{"app":"hiveblog/0.1"}
created2023-10-20 09:56:00
last_update2023-10-20 09:56:00
depth2
children0
last_payout2023-10-27 09:56:00
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length3
author_reputation6,454,286,455,572,137
root_title每天进步一点点:学习使用Graphviz
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,150,768
net_rshares0
@xiaoyaodidi ·
又解锁新的电脑软件  😁
properties (22)
authorxiaoyaodidi
permlinkre-oflyhigh-20231019t12536736z
categoryhive-105017
json_metadata{"type":"comment","tags":["hive-105017","cn","life","blog","graphviz","flow","chart","sketch"],"app":"ecency/3.0.44-mobile","format":"markdown+html"}
created2023-10-19 10:53:03
last_update2023-10-19 10:53:03
depth1
children0
last_payout2023-10-26 10:53:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length12
author_reputation420,725,591,905,600
root_title每天进步一点点:学习使用Graphviz
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id128,123,666
net_rshares0