Ruby|Gviz로 다양한 layout 시도

6237 단어 GraphvizRuby

Ruby|Gviz로 다양한 layout 시도


개요


Gviz에서 다양한 layout을 시도합니다.

Layouts


Graphiviz의 layout에는 다음과 같은 종류가 있습니다.
※ 링크 목표는 공식 문서(PDF)
  • circo
  • dot
  • fdp
  • neato
  • osage
  • patchwork
  • sfdp
  • twopi
  • 코드

    require "gviz"
    
    sexagenary_cycle = %w(子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥)
    layouts = %i(circo dot fdp neato osage patchwork sfdp twopi)
    
    layouts.each do |layout|
      Graph do
        global layout: layout, label:"sexagenary_#{layout}", fontsize:20, size:15, overlap:false
        nodes fontname:'MS GOTHIC', colorscheme: :paired12, style: :filled
    
        sexagenary_cycle.each_with_index do |e, i|
          edge "eto_#{i}"
          node :"#{i}", { label: e, fillcolor: i%12}
        end
        node :"eto", { label: '干支', fillcolor: :white }
        node :"0", { label: sexagenary_cycle.first, fillcolor: 1 }
        node :"11", { label: sexagenary_cycle.last, fillcolor: 12 }
    
        save :"sexagenary_#{layout}", :png
      end
    end
    

    출력


    circo 출력 결과



    dot 출력 결과



    fdp 출력 결과



    neato 출력 결과



    osage 출력 결과



    patchwork 출력 결과



    sfdp 출력 결과



    tworpi 출력 결과


    좋은 웹페이지 즐겨찾기