首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >敲代码前先构思一下-Graphviz-03-小示例

敲代码前先构思一下-Graphviz-03-小示例

作者头像
zishendianxia
发布2019-10-23 17:06:48
3910
发布2019-10-23 17:06:48
举报
文章被收录于专栏:Python工程师Python工程师

系统:Windows 7 软件版本:Graphviz2.38

  • 好久不见,接下来会有几篇文章讲解dot语言
  • 今天介绍一个简单的案例

效果图

对应dot代码

digraph test{
   node [ fontname = "Microsoft YaHei", fontsize =60]
   edge [ fontname = "Microsoft YaHei", fontsize =60]   a [ label = "node1"]
   b [ label = "node2"]
   c [ label = "node3"]
   a -> b [ label = "line1"]
   a -> c [ label = "line2"]   subgraph cluster_graph1{
       node [ fontname = "Microsoft YaHei", fontsize =12]
       edge [ fontname = "Microsoft YaHei", fontsize =12]       d [ label = "node4"]
       e [ label = "node5"]
       f [ label = "node6"]
       d -> e [ label = "line3"]
       d -> f [ label = "line4"]
   }
}

代码截图

Part 1:整体结构

  1. 制作一个图,总共涉及到三个文件
    • dot语言的gv文本文件,一个bat执行文件,一个生成的图片
  2. 代码主体写在gv文件中,使用dot语言
  3. bat文件的目的旨在将dot代码渲染成图片
    • dot 示例.gv -Tpng -o 示例.png
    • 渲染算法(dotgv文件(示例.gv) 目标文件格式(-Tpng) 输出(-o) 输出文件名称(示例.png)
    • 其中渲染算法(dot) 目标文件格式(-Tpng)存在其它选择,后续会介绍其中的一些

三个文件

Part 2:gv文件

  1. 第一层,digragh 名称{},最外层结构,指明输出图的名称
  2. 图里可以有节点和线,也可以有子图,子图里同样存在节点和线以及子图,嵌套(三大结构:图 线 点)
    • 图/节点/线都有其属性
    • 可以统一对其进行属性设置,下面就是对节点和线中字体及其大小进行设置
      • node [ fontname = “Microsoft YaHei”, fontsize =12]
      • edge [ fontname = “Microsoft YaHei”, fontsize =12]
    • 当然三大对象中的单个实例可以单独设置
  3. 节点定义:直接写一个变量即可,例如a,紧接着节点使用[]定义其属性
    • label定义节点名称
    • 存在不同子图中的节点,如果是不同节点,需使用不同变量名称,例如子图cluster_graph1中的节点就不要再使用变量a/b/c
  4. 线定义:节点1 -> 节点2,其中-> 是线定义的关键
    • label定义线的名称,其实就是由节点1指向节点2的那条线上写的字
  5. 子图定义,最外一层图,使用digragh来定义,子图则使用subgraph来定义
    • 注意:子图的名称必须以cluster来开始,否则无法识别子图
    • 子图同样使用{}将其中的内容包围起来
  6. 属性的定义采用就近原则,大家可以将子图中的node/edge删除,看看效果
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Part 1:整体结构
  • Part 2:gv文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档