graphviz 메모

6088 단어 Graphviz개발memo

설치


sudo apt -y install graphviz

우선 움직여 보자.



dot 파일 준비



test.dot
digraph g{
    graph[
        layout = circo
    ]
    A;
    B;
    C;
    D;
    A->B->C;
    B->D;
    C->B;
    D->C;
}

Makefile 준비



일일이 치는 귀찮기 때문에.

Makefile
all:
    dot -T png test.dot -o test.png
    xdg-open test.png

clean:
    $(RM) test.png

실행


$ make



문법



기본 골격


digraph HOGE{
}

그래프 전체 설정


graph[
    HOGE
];

노드 전체 설정


node[
    HOGE
];

모서리 전체 설정


edge[
    HOGE
];

노드 설정


node01[
    HOGE
];

여러 설정도 가능
node01, node02[
    HOGE
];

가장자리 설정


node01 -> node02[
    HOGE
];

graph로 설정할 수 있는 항목



layout



레이아웃을 설정하는 항목입니다.
자세한 내용은 여기의 "이 그래프는 위의 dot 파일에서 생성되었습니다."섹션을 참조하십시오.

node로 설정 가능한 항목



shape



모양입니다.
box 箱形
polygon 多角形
ellipse (default)   楕円
oval    卵型
circle  円
point   点
egg 卵
triangle    三角形
plaintext   テキスト
plain   テキスト
diamond ダイヤモンド
trapezium   台形
parallelogram   平行四辺形
house   家
pentagon    五角形
hexagon 六角形
septagon    七角形
octagon 八角形
doublecircle    二重線の丸
doubleoctagon   二重線の八角形
tripleoctagon   三重線の八角形
invtriangle 逆三角形
invtrapezium    逆台形
invhouse    逆さの家
Mdiamond    ダイヤモンド
Msquare 正方形
Mcircle 円
rect    長方形. boxのシノニム.
rectangle   長方形. boxのシノニム.
square  正方形
star    星
none    無し. plaintextのシノニム.
underline   下線
note    ノート
tab タブ
folder  フォルダー
box3d   3Dの箱形
rarrow  右向きの矢印
larrow  左向きの矢印

fixedsize



사이즈 변경 가능 플래그입니다.
(예) fixedsize = true

width



노드의 폭입니다.
(예) width = 1.5

height



노드의 높이입니다.
(예) height = 1.2

style


filled로 설정하면 채울 수 있습니다.
(예) style = filled

color



테두리의 색입니다.
(예) color = "#336666"

fillcolor



채우기 색상입니다. style=filled 그렇지 않으면 설정해도 의미가 없습니다.
(예) fillcolor = "#CC9999"

fontsize



글꼴 크기입니다.
(예) fontsize = 16

fontcolor



폰트 컬러입니다.
(예) fontcolor = blue

기록


shape = record 설정하면 레코드라는 특수 노드가 됩니다.
record01[
    shape = record, 
    label = "<left>hoge|<center>fuga|<right>piyo"
];

이렇게 쓰면 노드를 나눌 수 있습니다.
액세스는 다음과 같이 합니다.
record01:left

edge로 설정할 수 있는 항목



기출



・color
・fontsize
· fontcolor

label



라벨입니다.
(예) label = "a-b"

headlabel



시작 라벨입니다.

taillabel



종단 레이블입니다.

labeldistance



가장자리와 레이블 사이의 거리입니다.
(예) labeldistance = 2.5

dir



화살표 방향입니다.

・back



역방향

・both



양방향

랭크



어떤 순서로 연결되어 가는지를 나타내는 파라미터입니다.
layout을 설정하면 제대로 작동하지 않을 수 있습니다.

rankdir



graph로 설정합니다.

・LR

왼쪽에서 오른쪽으로 연결됩니다.

・TB

위에서 아래로 연결됩니다.

랭크



노드에 순위를 설정합니다.
설정 방법은 다음과 같이 합니다.
{rank = same; A; C; D;}

그 외에도 min과 max가 있습니다.


digraph g{
    graph[
        rankdir = LR,
        nodesep = 0.3
    ];
    A;
    B[
        shape = record,
        label = "{B|{<hoge>hoge|<fuga>fuga|<piyo>piyo}}"
    ];
    C, D;
    B:hoge->A;
    B:fuga->C[dir = back];
    B:piyo->D;
    C->D;
    {rank = same; A; C; D;}
}



투명



graph 설정에서 bgcolor를 #00000000으로 하면 투명하게 됩니다.
digraph g{
    graph[
        bgcolor="#00000000",
        rankdir = LR,
        nodesep = 0.3
    ];
    A[style=filled, fillcolor = "#ffffffff"];
    B[
        shape = record,
        label = "{B|{<hoge>hoge|<fuga>fuga|<piyo>piyo}}"
        style=filled,
        fillcolor = "#ffffffff"
    ];
    C[style=filled, fillcolor = "#ffffffff"];
    D[style=filled, fillcolor = "#ffffffff"];
    B:hoge->A;
    B:fuga->C[dir = back];
    B:piyo->D;
    C->D;
    {rank = same; A; C; D;}
}

좋은 웹페이지 즐겨찾기