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 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 deseas especificar un motor de diseño, incluye el punto y coma : y especifica una de las siguientes strings para <opt_engine>:

  • dot: Es 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 en lenguaje DOT. Puedes encontrar la referencia del lenguaje DOT en el sitio web de GraphViz.
chd NO SE UTILIZÓ Los códigos de GraphViz son inusuales, ya que 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 obtener información sobre 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 del gráfico para obtener más detalles.
callback=<handling_function_name> Opcional Si especificas chof=json, también puedes especificar una función a la que llamar con el JSON que se muestra 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. La página puede especificar el gráfico como un elemento <img> para renderizar el gráfico, 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 punto Engine (predeterminado).

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

ejemplo del 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 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]}

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

  • No se debe utilizar el atributo size de graph; en su lugar, utiliza el parámetro chs de la API de Chart.
  • La cantidad máxima de nodos es 200 y la cantidad máxima para los perímetros es 400.
  • No se admiten fuentes alternativas, transparencia ni suavizado de contorno.
  • 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.