利用Graphviz画出图

graphviz官网:http://www.graphviz.org/

背景:有画图需要,之前见到别人用graphviz画,画出来的图漂亮,且自动帮你排版安排布局,所以自己想尝试用它画。

其中遇到的几个问题

  1. win系统下载msi安装包后进行安装,安装不成功,报错信息是win电脑却少什么包,最后转向Mac画图。
  2. 找到两个graphviz online的网站(http://www.webgraphviz.com/  和),都不太好用,不是对中文支持不好,就是稍微复杂一些的图他就画不出来了。
  3. Mac 的安装了graphviz,但是你要先保存.dot文件,编码方式选为utf-8,再用Graphviz打开,就可以支持中文。
  4. 对于如何调字体颜色,大小,形状,标签等,参考官网帮助页面都可以搞定。

为什么用这个工具画图?

  1. 自动帮你排版
  2. 如果图要改动,后续维护简单
  3. 画出来的图好看,逼格高

最后放一张自己画的图

画图用的代码:

digraph ER {
        //size = "9, 15";//图片大小
        //fontsize=22
        compound=true;
        node [shape=ellipse,fontname=微软雅黑,labelfontsize=9,fontsize=28]; u89; c1;
         node [shape=box,style=filled,color=palegreen1]; a45;y78;h8;
         node [shape=diamond,style=filled,color=grey92];"b1";"p9";
        fontsize=25
        a [shape=diamond,style=filled,color=lgrey92,label="a1"];
        b [shape=diamond,style=filled,color=grey92,label="a2"];

        c [shape=diamond,style=filled,color=grey92,label="a3"];
        d [shape=diamond,style=filled,color=grey92,label="a4"];
        u89 -> a45;
        a45 -> "b1"[label="",len=1.00];

        "b1" -> a [label="是",len=1.00,fontname=微软雅黑,fontsize=25];
        "b1" -> b [label="否",len=1.00,fontname=微软雅黑,fontsize=25];
        subgraph cluster_0 {
        style=filled;
        color=bisque;
        label = "b2";
        fontname=微软雅黑
        node [shape=diamond,style=filled,color=grey92];"p9";
        a [shape=diamond,style=filled,color=grey92,label="d7"];
        c [shape=diamond,style=filled,color=grey92,label="f17"];
        m [shape=box,label=y78,style=filled,color=palegreen1];
    a -> m [label="是",len=1.00,fontname=微软雅黑,fontsize=25];
    a -> "p9" [label="否",len=1.00,fontname=微软雅黑,fontsize=25];
    "p9" -> c [label="是",len=1.00,fontname=微软雅黑,fontsize=25];
    "p9" -> m [label="否",len=1.00,fontname=微软雅黑,fontsize=25];
    c -> m [label="是",len=1.00,fontname=微软雅黑,fontsize=25];
    c -> h8 [label="否",len=1.00,fontname=微软雅黑,fontsize=25];
    }
subgraph cluster_1 {
    //graph[rank=min;width=11;height=26];
        label = "aa";
        fontname=微软雅黑;
        style = filled;
        color=lightblue;
        b [shape=diamond,style=filled,color=grey92,label="d7"];
        d [shape=diamond,style=filled,color=grey92,label="f17"];
        n [shape=box,label=y78,style=filled,color=palegreen1];
    b -> n [label="是",len=1.00,fontname=微软雅黑,fontsize=25];
    b -> d [label="否",len=1.00,fontname=微软雅黑,fontsize=25];
    d -> n [label="是",len=1.00,fontname=微软雅黑,fontsize=25];
    d -> y78 [label="否",len=1.00,fontname=微软雅黑,fontsize=25];
    }
m -> c1;
n -> c1;
y78 -> c1;
h8 -> c1;
}

总结:多动手,多积累实战经验。博客园也有其他说这个工具的文章,

利用Graphviz 画结构图

Graphviz-Gdot语言学习

等。

时间: 2024-08-28 02:07:28

利用Graphviz画出图的相关文章

构造From窗体获取数据库数据,去除数据库中无用信息,并赋值给字段,最后画出图

private void cbNum_SelectedIndexChanged(object sender, EventArgs e) { FieldListLug.Clear();//继续清除字段 if (cbType.Text == A)//选择了A { string killedString = ""; killedString = "ID,lugNumber,q1,q2,DnX,DnD,Th,kg"; DataTable tbSize =GetAccessD

利用highchair画出简易版甘特图

$(function () {      $('#container').highcharts({       chart: {         type: 'columnrange',         inverted: true     },          title: {         text: '项目进度图'     },      subtitle: {         text: '更新时间:2015-10-24'     },     xAxis: {         ca

利用python画折线图

# encoding=utf-8import matplotlib.pyplot as pltfrom pylab import * #支持中文mpl.rcParams['font.sans-serif'] = ['SimHei'] names = ['5', '10', '15', '20', '25']x = range(len(names))y = [0.855, 0.84, 0.835, 0.815, 0.81]y1=[0.86,0.85,0.853,0.849,0.83]#plt.pl

如何使用excel画甘特图

甘特图小伙伴们都非常的熟悉,首先小编简单的向各位小伙伴介绍一下上面是甘特图,甘特图内在思想简单,即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间.基本是一条线条图,横轴表示时间,纵轴表示活动(项目),线条表示在整个期间上计划和实际的活动完成情况.它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比.管理者由此可便利地弄清一项任务(项目)还剩下哪些工作要做,并可评估工作进度. 还记得在软考的时候,甘特图经常和PERT图放在一起,考察我们,既然提到了PERT

利用Excel画柱状图,并且包含最大最小值

如何利用Excel画出如上样式的图? 1.绘制柱状图.如何绘制柱状图,操作非常简单,选中数据,点击合适的图表样式即可. 2.添加误差线.选中已绘制好的图,添加误差线.如果误差线没有出现,可以使用”更多选项“一一添加误差线. 3.调整误差线的大小.可使用百分比,也可使用误差和偏差.

原来python还能这么用,使用turtle库画出漂亮的画!

Tuttle库是python内置库,今天就利用它画出各种漂亮的图! 如何画出多重五角星? 效果展示如下:是不是很酷呢,下面还有更酷的玩法.多重五角星的代码比较简单,用到了循环跟turtle库一些简单的方法就实现了. 如何画出一颗漂亮的树呢? 效果展示如下:是不是可以用beatiful来形容,自己一个个敲出来更有成就感,赶紧动手试一下吧!!! 还有更高阶的玩法:加入一些花瓣是不是感觉像自己完成的一幅佳作,以前要用笔画几个小时,现在你只需要几行代码就可以完成一幅漂亮的画: 欢迎点击右上角关注?转发,

数据结构已知先序和中序画出该树

这道题目很经典,具体如下: 已知遍历结果如下,试画出对应的二叉树: 前序:A B C E H F I J D G K 中序:A H E C I F J B D K G 解题要点: 1.前序.中序.后序--都针对中间那个节点而言(根节点也是中间的节点). 前序,指先遍历中间节点,然后左,然后右. 中序,指左--中--右. 后序,指右--中--左. 2.根据两种不同序列的遍历方法,便可画出二叉树. 解题答案如下:(对照着看会好理解这道题目一些的) 解题思路: 1.前序中序都首先找出A,推断出:A没有

全面总结:MATLAB如何画出漂亮的图

在绘图命令中应该如何确定横坐标和纵坐标的标度尺寸(自己定范围) 如何在一个坐标中绘制多条曲线,并用不同的颜色区别. 希望得到答案,谢谢!!!!!!!!!!! help plot help axis axis ('xlabel','ylabel') a1=plot(); hlod on a2=plot(); legend([a1 a2],'图1名',‘图2名') hold off 还可以更多 x1=-pi:pi/12:pi; x2=-pi:pi/12:pi; y1=sin(x1); y2=cos(

python—networkx:在一张图中画出多个子图

通过plt.subplot能够在一张图中画出多个子图 #coding: utf-8 #!/usr/bin/env python """ Draw a graph with matplotlib. You must have matplotlib for this to work. """ __author__ = """Aric Hagberg ([email protected])"""