DOT es un lenguaje de descripción de gráficos , desarrollado como parte del proyecto Graphviz . Los gráficos DOT se almacenan normalmente como archivos con la extensión .dt.gv o .dt ; se prefiere para evitar confusiones con la extensión utilizada por las versiones de Microsoft Word anteriores a 2007. [ 1 ] es también el nombre del programa principal para procesar archivos DOT en el paquete Graphviz..dot.gv.dotdot
Diversos programas pueden procesar archivos DOT. Algunos, como dot , neato , twopi , circo , fdp y sfdp , leen archivos DOT y los representan gráficamente. Otros, como gvpr , gc , acyclic , ccomps , sccmap y tred , leen archivos DOT y realizan cálculos sobre el gráfico resultante. Finalmente, otros, como lefty , dotty y grappa , ofrecen una interfaz interactiva. La herramienta GVedit combina un editor de texto con un visor no interactivo. La mayoría de los programas forman parte del paquete Graphviz o lo utilizan internamente.
DOT es históricamente un acrónimo de "DAG del mañana", como sucesor de un formato DAG y un programa DAG que manejaba solo grafos acíclicos dirigidos . [ 2 ]
Sintaxis
Tipos de gráficos
Grafos no dirigidos

En su forma más simple, DOT se puede usar para describir un grafo no dirigido . Un grafo no dirigido muestra relaciones simples entre objetos, como la amistad recíproca entre personas. La graphpalabra clave se usa para iniciar un nuevo grafo, y los nodos se describen dentro de llaves. Un guion doble ( --) se usa para mostrar relaciones entre los nodos.
// El nombre del gráfico y los puntos y coma son opcionales.gráfico nombre del gráfico {a -- b -- c ;b -- d ;}Grafos dirigidos

Al igual que con los grafos no dirigidos, DOT puede describir grafos dirigidos , como diagramas de flujo y árboles de dependencia . La sintaxis es la misma que para los grafos no dirigidos, excepto que digraphse usa la palabra clave para iniciar el grafo y una flecha (->) para mostrar las relaciones entre los nodos.
digrafo nombre_grafo { a -> b -> c ; b -> d ; }Atributos

En los archivos DOT se pueden aplicar diversos atributos a los gráficos, nodos y aristas. [ 3 ] Estos atributos pueden controlar aspectos como el color, la forma y los estilos de línea. Para los nodos y las aristas, uno o más pares atributo-valor se colocan entre corchetes []después de una instrucción y antes del punto y coma (que es opcional). Los atributos de los gráficos se especifican como pares atributo-valor directos bajo el elemento gráfico, donde varios atributos se separan con una coma o mediante varios conjuntos de corchetes, mientras que los atributos de los nodos se colocan después de una instrucción que contiene solo el nombre del nodo, pero no las relaciones entre los puntos.
graph graphname { // Este atributo se aplica al propio gráfico size = "1,1" ; // El atributo label se puede usar para cambiar la etiqueta de un nodo a [ label = "Foo" ]; // Aquí, se cambia la forma del nodo. b [ shape = box ]; // Estos bordes tienen propiedades de línea diferentes a -- b -- c [ color = blue ]; b -- d [ style = dotted ]; // [style=invis] oculta un nodo. }Se admiten etiquetas similares a HTML, aunque inicialmente Graphviz no las manejaba. [ 4 ]
Comentarios
DOT admite comentarios de una o varias líneas al estilo de C y C++ . Además, ignora las líneas cuyo primer carácter sea el símbolo de número, al igual que muchos lenguajes interpretados.#
Programas de diseño

El lenguaje DOT define un grafo, pero no proporciona herramientas para representarlo. Existen varios programas que se pueden usar para representar, visualizar y manipular grafos en el lenguaje DOT:
General
JavaScript
- Canviz : una biblioteca de JavaScript para renderizar archivos DOT [ 5 ]
- d3-graphviz : una biblioteca de JavaScript basada en Viz.js y D3.js que renderiza gráficos DOT y admite transiciones animadas entre gráficos y manipulación interactiva de gráficos [ 6 ].
- Vis.js : una biblioteca de JavaScript que acepta DOT como entrada para gráficos de red. [ 7 ]
- Viz.js: una versión en JavaScript de Graphviz que proporciona un envoltorio sencillo para usarlo en el navegador. [ 8 ]
- hpcc-js/wasm Graphviz : una biblioteca WASM rápida para Graphviz similar a Viz.js [ 9 ]
Java
- Gephi : una plataforma interactiva de visualización y exploración para todo tipo de redes y sistemas complejos, gráficos dinámicos y jerárquicos.
- Grappa : una adaptación parcial de Graphviz a Java.
- graphviz-java : una adaptación parcial de código abierto de Graphviz a Java , disponible en github.com.
- ZGRViewer – un visor DOT [ 10 ]
Otro
- Beluging : un visor de extensiones DOT y Beluga basado en Python y Google Cloud Platform.
- Delineate : una aplicación Rust para Linux que permite editar gráficos DOT completos con vista previa interactiva y exportarlos como PNG, SVG o JPEG.
- dot2tex : un programa para convertir archivos de DOT a PGF/TikZ o PSTricks , ambos renderizados en LaTeX [ 11 ].
- OmniGraffle : una aplicación de ilustración digital para macOS que puede importar un subconjunto de DOT, produciendo un documento editable (pero el resultado no se puede exportar de nuevo a DOT).
- Tulip – un marco de software en C++ que puede importar archivos DOT para análisis [ 12 ]
- VizierFX : una biblioteca de renderizado de gráficos Apache Flex en ActionScript [ 13 ]
Notas
- ↑ "¿Extensión de archivo .dot o .gv?" . marc.info . Consultado el 8 de marzo de 2011 .
- ↑ "Nombre 'punto' (etimología)" . Graphviz . 14 de noviembre de 2022. Consultado el 10 de julio de 2023 .
- ↑ "Atributos de nodos, aristas y grafos" . graphviz.org . Consultado el 12 de mayo de 2017 .
- ↑ "Formas de nodos: etiquetas similares a HTML" . graphviz.org . Consultado el 12 de mayo de 2017 .
- ↑ "canviz: graphviz en un lienzo" . Consultado el 2 de junio de 2017 .
- ↑ "GitHub - magjac/d3-graphviz: Renderizado de Graphviz DOT y transiciones animadas usando D3" . github.com . Consultado el 6 de junio de 2018 .
- ↑ "Importar datos en lenguaje DOT" . vis.js. Consultado el 22/12/2018 .
- ↑ "Github - Viz.js - Graphviz en tu navegador" .
- ↑ "hpcc-js/wasm" . GitHub . Consultado el 21 de octubre de 2020 .
- ↑ "ZGRViewer" . zvtm.sourceforge.net . Consultado el 12 de mayo de 2017 .
- ↑ "dot2tex – Un convertidor de Graphviz a LaTeX" . dot2tex.readthedocs.io . 1 de noviembre de 2019.
- ↑ "Software de visualización de datos – Tulip" . tulip.labri.fr . Consultado el 12 de mayo de 2017 .
- ↑ "GitHub - gvhung/vizierfx: Exportado automáticamente desde code.google.com/p/vizierfx" . github.com . Consultado el 12 de mayo de 2017 .
Véase también
Enlaces externos
- Tutorial y especificaciones del DOT
- Dibujar gráficos con puntos
- Atributos de nodos, aristas y grafos
- Formas de nodos
- Galería de ejemplos
- Graphviz Online : conversión y visualización instantánea de descripciones DOT.
- Biblioteca de gráficos Boost
- lisp2dot o tree2dot : convierte árboles de programas similares al lenguaje de programación Lisp al lenguaje DOT (diseñado para su uso con programación genética ).
- Software matemático
- lenguajes de descripción de gráficos
- Dibujo de gráficos