• graphviz 的使用教程


    node 节点属性如下 :

    NameDefaultValues
    color black node shape color
    comment   any string (format-dependent)
    distortion 0.0 node distortion for shape=polygon
    fillcolor lightgrey/black node fill color
    fixedsize false label text has no affect on node size
    fontcolor black type face color
    fontname Times-Roman font family
    fontsize 14 point size of label
    group   name of node’s group
    height .5 height in inches
    label node name any string
    layer overlay range all, id or id:id
    orientation 0.0 node rotation angle
    peripheries shape-dependent number of node boundaries
    regular false force polygon to be regular
    shape ellipse node shape; see Section 2.1 and Appendix E
    shapefile   external EPSF or SVG custom shape file
    sides 4 number of sides for shape=polygon
    skew 0.0 skewing of node for shape=polygon
    style   graphics options, e.g. bold, dotted, filled; cf. Section 2.3
    URL   URL associated with node (format-dependent)
    width .75 width in inches
    z 0.0 z coordinate for VRML output

    edge 边框属性如下:

    NameDefaultValues
    arrowhead normal style of arrowhead at head end
    arrowsize 1.0 scaling factor for arrowheads
    arrowtail normal style of arrowhead at tail end
    color black edge stroke color
    comment   any string (format-dependent)
    constraint true use edge to affect node ranking
    decorate   if set, draws a line connecting labels with their edges
    dir forward forward, back, both, or none
    fontcolor black type face color
    fontname Times-Roman font family
    fontsize 14 point size of label
    headlabel   label placed near head of edge
    headport   n,ne,e,se,s,sw,w,nw
    headURL   URL attached to head label if output format is ismap
    label   edge label
    labelangle -25.0 angle in degrees which head or tail label is rotated off edge
    labeldistance 1.0 scaling factor for distance of head or tail label from node
    labelfloat false lessen constraints on edge label placement
    labelfontcolor black type face color for head and tail labels
    labelfontname Times-Roman font family for head and tail labels
    labelfontsize 14 point size for head and tail labels
    layer overlay range all, id or id:id
    lhead   name of cluster to use as head of edge
    ltail   name of cluster to use as tail of edge
    minlen 1 minimum rank distance between head and tail
    samehead   tag for head node; edge heads with the same tag are
    sametail   merged onto the same port
    style   tag for tail node; edge tails with the same tag are merged onto the same port
    taillabel   graphics options, e.g. bold, dotted, filled; cf. Section 2.3
    tailport   label placed near tail of edge n,ne,e,se,s,sw,w,nw
    tailURL   URL attached to tail label if output format is ismap
    weight 1 integer cost of stretching an edge

    Digraph 图属性如下:

    NameDefaultValues
    bgcolor   background color for drawing, plus initial fill color
    center false center drawing on page
    clusterrank local may be global or none
    color black for clusters, outline color, and fill color if fillcolor not defined
    comment   any string (format-dependent)
    compound false allow edges between clusters
    concentrate false enables edge concentrators
    fillcolor black cluster fill color
    fontcolor black type face color
    fontname Times-Roman font family
    fontpath   list of directories to search for fonts
    fontsize 14 point size of label
    label   any string
    labeljust centered ”l” and ”r” for left- and right-justified cluster labels, respectively
    labelloc top ”t” and ”b” for top- and bottom-justified cluster labels, respectively
    layers   id:id:id…
    margin .5 margin included in page, inches
    mclimit 1.0 scale factor for mincross iterations
    nodesep .25 separation between nodes, in inches.
    nslimit   if set to f, bounds network simplex iterations by (f)(number of nodes) when setting x-coordinates
    nslimit1   if set to f, bounds network simplex iterations by (f)(number of nodes) when ranking nodes
    ordering   if out out edge order is preserved
    orientation portrait if rotate is not used and the value is landscape, use landscape orientation
    page   unit of pagination, e.g. “8.5,11”
    pagedir BL traversal order of pages
    quantum   if quantum ¿ 0.0, node label dimensions will be rounded to integral multiples of quantum
    rank   same, min, max, source or sink
    rankdir TB LR (left to right) or TB (top to bottom)
    ranksep .75 separation between ranks, in inches.
    ratio   approximate aspect ratio desired, fill or auto
    remincross   if true and there are multiple clusters, re-run crossing minimization
    rotate   If 90, set orientation to landscape
    samplepoints 8 number of points used to represent ellipses and circles on output (cf. Appendix C
    searchsize 30 maximum edges with negative cut values to check when looking for a minimum one during network simplex
    size   maximum drawing size, in inches
    style   graphics options, e.g. filled for clusters
    URL   URL associated with graph (format-dependent)
    from graphviz import Graph
    from graphviz import Digraph
    
    
    # 绘制无向图
    def draw_Graph():
        # 创建对象,设置对象属性
        dot = Graph(name='无向图', filename=r'D:Cachepython无向图', format='png')
        # 设置节点属性, 修改 fontname 属性可解决中文输出乱码问题
        dot.node_attr.update(shape='ellipse', color='black', fillcolor='lightgrey', fontcolor='black', fontsize='18',
                             fontname='Microsoft YaHei', width='4', height='2', style='bold')
        # 创建节点, 设置节点名字、内容
        dot.node('A', '小朋友')
        dot.node('B', '小学生')
        dot.node('C', '初中生')
        dot.node('D', '高中生')
        dot.node('E', '大学生')
        dot.node('F', '研究生')
        dot.node('G', '博士生')
        dot.node('H', '医生')
        dot.node('I', '老师')
        dot.node('J', '程序员')
        dot.node('K', '会计')
        dot.node('L', '公务员')
        dot.node('M', '教授')
        # 设置边属性
        dot.edge_attr.update(color='black', fontcolor='black', fontsize='18', fontname='Microsoft YaHei')
        # 创建单边,设置边内容
        dot.edge('A', 'B', '升级')
        dot.edge('B', 'C', '升级')
        dot.edge('C', 'D', '升级')
        dot.edge('D', 'E', '升级')
        dot.edge('E', 'F', '升级')
        dot.edge('F', 'G', '升级')
        # 创建多边,不能设置边内容
        dot.edges(['EI', 'FI', 'GI', 'FH', 'GH', 'EJ', 'FJ', 'GJ', 'EK', 'FK', 'GK', 'EL', 'FL', 'GL', 'GM'])
        # 打印生成的源代码,pdf 格式无法打印
        print(dot.source)
        # 保存图片,不显示图片
        dot.render(filename='无向图', directory=r'D:Cachepython')
        # 保存图片,并显示图片
        dot.view(filename='无向图', directory=r'D:Cachepython')
    
    
    # 绘制有向图
    def draw_Digraph():
        # 创建对象,设置对象属性
        dot = Digraph(name='有向图', filename=r'D:Cachepython有向图', format='pdf')
        # 设置节点属性, 修改 fontname 属性可解决中文输出乱码问题
        dot.node_attr.update(shape='ellipse', color='black', fillcolor='lightgrey', fontcolor='black', fontsize='18',
                             fontname='Microsoft YaHei', width='4', height='2', style='bold')
        # 创建节点, 设置节点名字、内容
        dot.node('A', '小朋友')
        dot.node('B', '小学生')
        dot.node('C', '初中生')
        dot.node('D', '高中生')
        dot.node('E', '大学生')
        dot.node('F', '研究生')
        dot.node('G', '博士生')
        dot.node('H', '医生')
        dot.node('I', '老师')
        dot.node('J', '程序员')
        dot.node('K', '会计')
        dot.node('L', '公务员')
        dot.node('M', '教授')
        # 设置边属性, arrowhead 为前端箭头样式, arrowsize 为箭头缩放比例, minlen 为边头部和尾部的距离, pnewidth 为边宽度
        dot.edge_attr.update(color='black', fontcolor='black', fontsize='18', fontname='Microsoft YaHei',
                             arrowhead='diamond', arrowsize='2.0', minlen='3', penwidth='2', style='dashed')
        # 创建单边,设置边内容
        dot.edge('A', 'B', '升级')
        dot.edge('B', 'C', '升级')
        dot.edge('C', 'D', '升级')
        dot.edge('D', 'E', '升级')
        dot.edge('E', 'F', '升级')
        dot.edge('F', 'G', '升级')
        # 创建多边,不能设置边内容
        dot.edges(['EI', 'FI', 'GI', 'FH', 'GH', 'EJ', 'FJ', 'GJ', 'EK', 'FK', 'GK', 'EL', 'FL', 'GL', 'GM'])
        # 保存图片,不显示图片
        dot.render(filename='有向图', directory=r'D:Cachepython')
        # 保存图片,并显示图片
        dot.view(filename='有向图', directory=r'D:Cachepython')
    
    
    if __name__ == '__main__':
        draw_Graph()
  • 相关阅读:
    golang ---cron
    Maven私库安装与配置
    Java8新特性之重复注解(repeating annotations)浅析
    String split
    如何将xml转为python中的字典
    json字符串和dict互转
    为什么空格拷贝到linux 会变成两个
    python之socket编程
    ntpdate设置
    Nginx配置ssl证书
  • 原文地址:https://www.cnblogs.com/liumengsong/p/12200621.html
Copyright © 2020-2023  润新知