DOT(그래프 설명 언어)
DOT (graph description language)| 파일 이름 확장명 | .gv |
|---|---|
| 인터넷 미디어 유형 | 텍스트/vnd.그래픽비즈 |
| 형식 유형 | 그래프 설명 언어 |
| 오픈 포맷? | 네 |
DOT는 그래프 설명 언어다.DOT 그래프는 일반적으로 파일 이름 확장명이 gv 또는 점인 파일이다.2007년 이전 버전의 Microsoft Word에서 사용하는 확장 도트와 혼동을 방지하기 위해 확장 gv가 선호된다.[1]
다양한 프로그램이 DOT 파일을 처리할 수 있다.도트, 네아토, 투피, 서코, fdp, sfdp와 같은 일부는 DOT 파일을 읽고 그래픽 형태로 렌더링할 수 있다.gvpr, gc, acyclick, ccomps, sccmap 및 tred와 같은 다른 것들은 표시된 그래프에서 DOT 파일을 읽고 계산을 수행한다.마지막으로, 레프티, 도티, 그라파 같은 다른 것들은 대화형 인터페이스를 제공한다.GVedit 도구는 텍스트 편집기와 비인터랙티브 이미지 뷰어를 결합한다.대부분의 프로그램은 Graphviz 패키지의 일부분이거나 내부적으로 사용한다.
구문
그래프 유형
리디렉션되지 않은 그래프
가장 간단한 방법으로 DOT를 사용하여 방향 지시되지 않은 그래프를 설명할 수 있다.비방향 그래프는 사람간의 우정과 같은 사물들 사이의 단순한 관계를 보여준다.그래프 키워드는 새 그래프를 시작하는 데 사용되며, 노드는 곱슬 교정기 내에서 설명된다.이중 하이픈(-)은 노드 간의 관계를 보여주는 데 사용된다.
// 그래프 이름과 세미콜론은 선택 사항임 도표를 찍다 그래핀의 { a -- b -- c; b -- d; } 지시 그래프
비방향 그래프와 비슷하게, DOT는 플로우차트나 의존성 나무와 같은 지시된 그래프를 설명할 수 있다.구문은 digraph 키워드를 사용하여 그래프를 시작하고 화살표(->)를 사용하여 노드 간의 관계를 보여주는 것을 제외하면 비방향 그래프와 동일하다.
비문 그래핀의 { a -> b -> c; b -> d; } 특성
DOT 파일의 그래프, 노드, 에지 등에 다양한 속성을 적용할 수 있다.[2] 이러한 속성은 색상, 모양, 선 스타일 등의 측면을 제어할 수 있다.노드와 에지의 경우, 하나 이상의 속성-값 쌍이 문장 뒤에 세미콜론 앞에 대괄호([])로 배치된다(선택 사항).그래프 속성은 그래프 요소 아래에 직접 속성-값 쌍으로 지정되는데, 여기서 다중 속성은 쉼표로 구분되거나 여러 개의 대괄호 집합을 사용하며, 노드 속성은 점 사이의 관계만 포함하는 문장 뒤에 배치된다.
도표를 찍다 그래핀의 { // 이 속성은 그래프 자체에 적용된다. 사이즈를 맞추다="1,1"; // 레이블 속성을 사용하여 노드의 레이블을 변경할 수 있음 a [라벨을 붙이다="푸"]; // 여기서 노드 모양이 바뀐다. b [모양을 내다=권투를 하다]; // 이 에지들은 둘 다 다른 선 속성을 가지고 있다. a -- b -- c [색을 칠하다=파랑의]; b -- d [문체를 하다=점점이 있는]; // [style=cndis]는 노드를 숨긴다. } HTML과 같은 라벨은 2003년 11월 중순보다 새로운 Graphviz 버전에서만 사용할 수 있으며, 특히 릴리즈 1.10의 일부로 간주되지 않는다.[3]
평.
도트는 C와 C++ 스타일의 단일 선과 다중 선 코멘트를 지원한다.또 숫자 부호 기호(#)를 첫 번째 문자로 하는 행도 무시한다.
// 단일 줄 코멘트 입니다. /* 다중 줄 코멘트 입니다.*/ # 이와 같은 행도 무시한다. 간단한 예
다음은 에탄 분자의 결합 구조를 설명하는 대본이다.이 그래프는 리디렉션되지 않은 그래프로서 위에서 설명한 대로 노드 속성을 포함하고 있다.
도표를 찍다 에탄의 { C_0 -- H_0 [타자를 치다=s]; C_0 -- H_1 [타자를 치다=s]; C_0 -- H_2 [타자를 치다=s]; C_0 -- C_1 [타자를 치다=s]; C_1 -- H_3 [타자를 치다=s]; C_1 -- H_4 [타자를 치다=s]; C_1 -- H_5 [타자를 치다=s]; } 레이아웃 프로그램
DOT 언어는 그래프를 정의하지만 그래프를 렌더링할 수 있는 기능은 제공하지 않는다.DOT 언어로 그래프를 렌더링, 보기 및 조작하는 데 사용할 수 있는 몇 가지 프로그램이 있다.
일반
- Graphviz – 그래프를 조작하고 SVG, PDF, PNG 등과 같은 다른 형식으로 렌더링하기 위한 CLI 유틸리티 및 라이브러리 모음입니다.
- 도트 – CLI 툴로 전환
.dot기타 형식
- 도트 – CLI 툴로 전환
자바스크립트
- 캔버스즈 – DOT 파일[4] 렌더링을 위한 JavaScript 라이브러리
- d3-그래프viz – Viz.js 및 D3.js를 기반으로 하는 JavaScript 라이브러리로서 DOT 그래프를 렌더링하고 그래프와 대화형 그래프 조작[5] 간의 애니메이션 전환을 지원한다.
- Vis.[6]js – 네트워크 그래프의 입력으로 DOT를 받아들이는 JavaScript 라이브러리.
- Viz.js – 브라우저에서 사용하기 위한 간단한 래퍼를 제공하는 Graphviz의 JavaScript 포트.
- hpcc-js/wasm Graphviz – Viz와 유사한 Graphviz용 빠른 WASM 라이브러리.js[7]
자바
- Gephi – 모든 종류의 네트워크와 복잡한 시스템을 위한 대화형 시각화 및 탐색 플랫폼, 동적 및 계층적 그래프
- Grappa – Graphviz에서 Java로 부분 포트
- graphviz-messages – 오픈 소스 부분 포트인 Graphviz to Java github.com에서 사용 가능
- ZGRVier – DOT 뷰어[8]
기타
- Beluging – Python-&Google 클라우드 플랫폼 기반 DOT 및 Beluga 확장 뷰어
- dot2tex – 파일을 DOT에서 PGF/TikZ 또는 PSTricks로 변환하는 프로그램(둘 다 LaTeX에서[9] 렌더링됨)
- OmniGraffle – 편집 가능한 문서를 생성하는 MacOS용 디지털 일러스트레이션 응용 프로그램(그러나 결과를 DOT로 다시 내보낼 수 없음)
- Tulip – 분석을[10] 위해 DOT 파일을 가져올 수 있는 C++의 소프트웨어 프레임워크
- VizierFX – ActionScript의[11] Apache Flex 그래프 렌더링 라이브러리
제한 사항
DOT 언어를 구현하는 모든 툴이 위치 속성에 주의를 기울이는 것은 아니지만, DOT로 레이아웃 세부사항을 지정할 수 있다.따라서 사용하는 도구에 따라 사용자는 자동화된 배치 알고리즘(잠재적으로 예기치 않은 출력이 발생할 수 있음) 또는 지루하게 손으로 배치한 노드에 의존해야 한다.
예를 들면 다음과 같다.
비문 g { 마디를 짓다 [모양을 내다=일반 텍스트]; A1 -> B1; A2 -> B2; A3 -> B3; A1 -> A2 [라벨을 붙이다=f]; A2 -> A3 [라벨을 붙이다=g]; B2 -> B3 [라벨을 붙이다="g"]; B1 -> B3 [라벨을 붙이다="(go f)" 꼬리표를 붙이다=s 헤드포트=s]; { 등수를 매기다=같은; A1 A2 A3 } { 등수를 매기다=같은; B1 B2 B3 } } 이미지에는 "잘못 렌더링된 것 같은 이미지"라는 두 가지 문제가 있다.오른쪽의 사각형은 완벽한 정사각형이 아니며 일부 라벨은 관련 화살표((g o f)) 옆에 없고 일부는 화살표와 겹친다.
이것은 잉크스케이프나 다른 SVG 편집기로 고칠 수 있다.경우에 따라서는 포지스 속성을 사용하여 위치를 지정하고, 가중치 속성을 사용하여 그래프를 정사각형으로 만들 수도 있다.
참고 항목
- Lisp 프로그래밍 언어와 유사한 프로그램 트리를 DOT 언어로 변환하는 lisp2dot 도구.유전자 프로그래밍과 함께 사용하도록 설계되었다.
| 위키미디어 커먼즈에는 DOT 언어와 관련된 미디어가 있다. |
메모들
- ^ "File extension .dot or .gv?". marc.info. Retrieved 2011-03-08.
- ^ "Node, Edge and Graph Attributes". graphviz.org. Retrieved 2017-05-12.
- ^ "Node Shapes: HTML-Like Labels". graphviz.org. Retrieved 2017-05-12.
- ^ "canviz: graphviz on a canvas". Retrieved 2017-06-02.
- ^ "GitHub - magjac/d3-graphviz: Graphviz DOT rendering and animated transitions using D3". github.com. Retrieved 2018-06-06.
- ^ "Import data in DOT language". vis.js. Retrieved 2018-12-22.
- ^ "hpcc-js/wasm". Retrieved 2020-10-21.
- ^ "ZGRViewer". zvtm.sourceforge.net. Retrieved 2017-05-12.
- ^ "dot2tex – A Graphviz to LaTeX converter". dot2tex.readthedocs.io. 2019-11-01.
- ^ "Data Visualization Software – Tulip". tulip.labri.fr. Retrieved 2017-05-12.
- ^ "GitHub - gvhung/vizierfx: Automatically exported from code.google.com/p/vizierfx". github.com. Retrieved 2017-05-12.