Gráficos de GraphViz

   

En este documento, se describe cómo crear gráficos de GraphViz con la API de Charts.

Descripción general

GraphViz es un paquete de herramientas de código abierto para visualizar grafos de conectividad. Puedes crear gráficos de GraphViz con el lenguaje DOT y los motores de diseño que prefieras.

Los gráficos de GraphViz admiten un conjunto diferente de parámetros obligatorios. Estos son los parámetros admitidos:

Parámetro Obligatorio u opcional Descripción
cht=gv[:<opt_engine>] Obligatorio

Especifica un gráfico de GraphViz. De manera opcional, puedes especificar un motor de GraphViz. Si quieres especificar un motor de diseño, incluye el punto y coma: marca y especifica una de las siguientes strings para <opt_engine>:

  • dot: El motor predeterminado
  • neato
  • twopi
  • circo
  • fdp

Consulta el sitio web de GraphViz para obtener una descripción de estos diferentes motores.

chs=<width>x<height> Opcional Si no especifica un tamaño, se ajustará automáticamente el tamaño del gráfico.
chl=<DOT_string> Obligatorio El gráfico para dibujar en notación de lenguaje DOT Puedes encontrar la referencia del lenguaje DOT en el sitio web de GraphViz.
chd NO SE USA Los códigos de GraphViz son inusuales porque el parámetro chd se ignora. No lo incluyas en la URL.
chof=<output_format> Opcional Un formato de salida para el gráfico. Consulta la descripción del parámetro para saber qué formatos de salida se admiten. Si especificas chof=json, obtendrás una representación JSON del gráfico como mapa de imagen HTML que puedes usar para agregar vínculos o interactividad al gráfico. Consulta Cómo crear un mapa de imágenes para los gráficos a fin de obtener detalles.
callback=<handling_function_name> Opcional Si especificas chof=json, también puedes especificar una función para llamar con el JSON que se muestra y que incluye el mapa de imagen del gráfico. Tu función debe aceptar un solo parámetro JSON, que será una representación JSON del gráfico. Luego, tu página puede especificar tu gráfico como un elemento <img> para procesarlo y, además, llamar a la misma URL con chof=json&callback=somefunc e incluir una función llamada somefunc() que analizará el JSON que se muestra y agregará vínculos o interactividad.

 

Ejemplos:

Descripción Ejemplo

ejemplo de motor de punto (predeterminado).

gráfico de puntos
cht=gv
chl=digraph{A->B->C->A}
chs=150x150

ejemplo de motor neato del mismo gráfico. gráfico de neato
cht=gv:neato
chl=digraph{A->B->C->A}
chs=150x150
Un gráfico de puntos sin tamaño especificado. Su tamaño se ajusta automáticamente. gráfico de puntos sin tamaño especificado
cht=gv
chl=graph{a--b--c;b--d}
Un gráfico más complejo. Un gráfico de puntos más elegante
cht=gv
chl=
  graph{C_0--H_0[type=s];C_0--H_1[type=s];C_0--H_2[type=s];C_0--C_1[type=s];C_1--H_3[type=s];C_1--H_4[type=s];C_1--H_5[type=s]}

Estas son algunas sugerencias y limitaciones conocidas de los gráficos actuales de GraphViz:

  • No se debe usar el atributo graph size. En su lugar, usa el parámetro chs de la API de Charts.
  • La cantidad máxima de nodos es de 200 y la de los bordes es de 400.
  • No se admiten suavizado de contorno, transparencia ni fuentes alternativas.
  • Los atributos node image y shapefile no son compatibles y generarán un error si están presentes.
  • Los atributos graph ratio, margin y pad no son compatibles y se ignorarán si están presentes.