Gráficos de GraphViz

   

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

Descripción general

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

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 deseas especificar un motor de diseño, incluye la marca de punto y coma y especifica una de las siguientes cadenas 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 especificas un tamaño, el tamaño del gráfico se ajustará automáticamente.
chl=<DOT_string> Obligatorio El gráfico que se dibujará, en notación del idioma DOT. Puedes encontrar la referencia del idioma del DOT en el sitio web de GraphViz.
chd NO UTILIZADO Los códigos de GraphViz son inusuales porque se ignora el parámetro chd. No la incluyas en tu URL.
chof=<output_format> Opcional Un formato de salida para el gráfico. Consulta la descripción del parámetro para conocer los formatos de salida compatibles. Si especificas chof=json, obtendrás una representación JSON del gráfico como un mapa de imágenes HTML que puedes usar para agregar vínculos o interactividad al gráfico. Consulta Cómo crear un mapa de imágenes de gráfico para obtener más 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 imágenes del gráfico. Tu función debe aceptar un solo parámetro JSON, que será una representación JSON del gráfico. Luego, la página puede especificar tu gráfico como un elemento <img> para renderizarlo, además de 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 puntos (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 neato
cht=gv:neato
chl=digraph{A->B->C->A}
chs=150x150
Un gráfico de puntos sin tamaño especificado El tamaño del gráfico 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]}

A continuación, se indican algunas sugerencias y limitaciones conocidas en los gráficos de GraphViz actuales:

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