A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

系统环境:win10 64bit
工具:Graphviz, Notepad++
关于Graphviz的介绍就不多说了,官网下载安装即可,安装后手动将程序所在文件目录添加到系统环境变量,然后打开控制台窗口才能使用dot,neato等程序。
dot 渲染的图具有明确方向性。neato 渲染的图缺乏方向性。twopi 渲染的图采用放射性布局。circo 渲染的图采用环型布局。fdp 渲染的图缺乏方向性。sfdp 渲染大型的图,图片缺乏方向性。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
(1)
安装好Graphviz后,我们就要开始写代码了,但是似乎Graphviz没有提供类似于IDE的程序啊?怎么办呢?
按照网上的其他说法就是使用文本编辑器,如sublime text,emacs或者Vim等,很遗憾,因为不是专业程序员,上述编辑器自己都不熟练,而且在windows环境下更喜欢记事本类型的,那么我就使用了Notepad++这个文本编辑器。
编写以下代码
graph G{/* fontname: PMingLiU(新细明体),MingLiU(细明体),DFKai-SB(标楷体),SimHei(黑体),            SimSun(宋体),NSimSun(新宋体),FangSong(仿宋),KaiTi(楷体),            FangSong_GB2312(仿宋_GB2312),KaiTi_GB2312(楷体_GB2312),            Microsoft JhengHei(微软正黑体),Microsoft YaHei(微软雅黑),LiSu(隶书)*/resolution=480;            //设置分辨率dpi = 320;                 //设置分辨率node [fontname="SimHei"];  //设置节点属性,这里设置字体为黑体edge [fontname="SimHei"];  // 设置边属性"黑海" [shape = circle, color = blueviolet, fontcolor = blueviolet, fontsize = 20];"黑海" -- "亚速海" [fontname="SimHei", label = "刻赤海峡"];subgraph cluster_T{fontname="SimHei"label = "黑海海峡";fontsize = 24;              //字体大小fillcolor = darkslategray;  //填充颜色style = filled; fontcolor = white;          //字体颜色node [fontcolor = white, color = white,fontname="SimHei"];"博斯普鲁斯海峡" -- "马尔马拉海" -- "达达尼尔海峡" [color = white];"博斯普鲁斯海峡" [shape = parallelogram];"达达尼尔海峡" [shape = parallelogram];}"黑海" -- "博斯普鲁斯海峡" [color = red ,penwidth = 2];"达达尼尔海峡" -- "爱琴海" [color = red ,penwidth = 2];subgraph cluster_M{node [fontname="Microsoft YaHei"];fontname="SimHei"label = "地中海海域";fontsize = 24;"西部地中海" [shape = Mcircle, style = filled, color = grey, fillcolor = aquamarine, fontsize = 20];"中部地中海" [shape = Mcircle, style = filled, color = grey, fillcolor = aquamarine, fontsize = 20];"直布罗陀海峡" [shape = parallelogram, fontcolor = red];"西西里海峡" [shape = parallelogram ];"中部地中海" -- {"爱琴海" "爱奥尼亚海" "西西里海峡"};"西部地中海" -- {"西西里海峡" "第勒安海" "利古里亚海" "伊比利海" "阿尔沃兰海"};"爱奥尼亚海" -- "亚得里亚海"; 30 "阿尔沃兰海" -- "直布罗陀海峡";}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
保存为graph.dot,打开CMD, 进入文件所在目录,执行以下程序:
dot D:\Files\graphviz\graph3.dot -T png -o test.png
  • 1
-T后面连接的是图片格式,可以png,jpg,svg,pdf,tif等格式,具体有哪些输出程序可以查看官网test.png是输出的图片,会在当前目录生成。
代码中已经写了很多绘图时用到的关键属性了,

(2)一开始遇到了显示中文乱码问题,只需在属性中设置fontname 即可,这在上述代码中已写出
(3)生成图片的分辨率问题,如果不添加分辨率属性使用默认值生成的图分辨率不好,使用resolution或者dpi属性修改其值可以获得高分辨率的图像,上面的代码已经实现
(4)如果每次修改代码后都要重新执行上述命令,然后用照片查看器打开就太麻烦了,可以编写一个非常简单的bat批处理文件来实现,新建一个文本文件,写入
dot D:\Files\graphviz\graph.dot -T png -o test.png
另存为command.bat 即可,那样修改代码后保存,然后双击bat文件就可以了,同时打开照片查看器,生成的图片改变后照片查看器也会更新的。
(5)其实graphviz自己本身也有editor,位于"D:\Applications\graphviz-2.38\release\bin\gvedit.exe"
,这是我自己的安装目录,要自己手动打开,打开后如下图:

(6)在官网中也找到了其他交互式即使展示图形的软件,自己觉得最好用的是GraphvizTool ,效果图如下:
  
执行run Graphviz 后会直接调用照片查看器打开生成的图片,
详细的说明参看英文教程即可,说明一下,GraphvizTool程序在"D:\Applications\GraphvizTool\dist\GraphvizFrontend.jar" 是jar文件,不同电脑可能需要配置一下java环境,我电脑运行时没问题的。
---------------------本文来自 落叶_小唱 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/ouening/ar ... 249?utm_source=copy

2 个回复

正序浏览
回复 使用道具 举报
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马