DocumentaciónGRAFICAR(param)

GRAFICAR(param)\texttt{GRAFICAR}(param)

Nombre

GRAFICAR - Genera un grafico a partir de una tabla de configuracion completa.

Sinopsis

ok = GRAFICAR(param)

Descripcion

Es la primitiva interna base del motor grafico. Recibe una TABLA de configuracion completa que describe tipo de grafico, ejes, etiquetas, series, dimensiones y archivo de salida.

Las funciones publicas de graficos.api suelen construir esta tabla por ti y luego delegar aqui. Por eso GRAFICAR() se usa sobre todo en escenarios avanzados o cuando quieres controlar directamente la estructura interna del grafico.

Comportamiento

  • Recibe una TABLA param con toda la configuracion del grafico.
  • Interpreta las series declaradas en param.datos y los ejes configurados en abscisas y ordenadas.
  • Exporta el resultado al archivo PNG indicado y retorna LOGICO segun el exito de la operacion.

Parámetros

ParámetroTipoDescripción
paramTABLATabla de configuración del gráfico. Campos principales:
  • tipo (STRING): tipo de gráfico principal (ej: "barras").
  • titulo (STRING): título del gráfico.
  • etiquetas (TABLA): configuración de etiquetas (ver estructura abajo).
  • ejex (LOGICO): muestra/oculta eje X.
  • ejey (LOGICO): muestra/oculta eje Y.
  • abscisas (TABLA): configuración del eje X (ver estructura abajo).
  • ordenadas (TABLA): configuración del eje Y (ver estructura abajo).
  • datos (TABLA): series a dibujar, por nombre (ej: {Histograma = s_barras, Poligono = s_poly}). Cada valor es una TABLA serie (ver estructura abajo).
  • ancho (NUMERICO): ancho de la imagen en pixeles.
  • alto (NUMERICO): alto de la imagen en pixeles.
  • margen (NUMERICO): margen en pixeles.
  • archivo (STRING): nombre/ruta del archivo de salida (png).

Estructura de param.etiquetas:

  • mostrar (LOGICO/NUMERICO): 1 para mostrar.
  • texto (VECTOR[STRING] o VECTOR): etiquetas a mostrar.
  • orientacion (NUMERICO): ángulo de rotación (ej: -45).
  • fuente (NUMERICO): tamaño de fuente.
  • esp (NUMERICO): espaciado.
  • color (STRING): color RGBA en hex (ej: "#000000FF").

Estructura de param.abscisas (eje X):

  • nombre (STRING): nombre del eje.
  • cuadricula (NUMERICO): paso/espaciado de la grilla.

Estructura de param.ordenadas (eje Y):

  • nombre (STRING): nombre del eje.
  • orientacion (STRING): ej: "vertical".
  • cuadricula (NUMERICO): paso/espaciado de la grilla.

Estructura de una serie en param.datos (ej: s_barras / s_poly):

  • tipo (STRING): "barras" o "xy".
  • x (VECTOR[NUMERICO] o VECTOR): datos en X.
  • y (VECTOR[NUMERICO] o VECTOR): datos en Y.
  • (barras) bar_width (NUMERICO): ancho de barra.
  • (xy) trazo (STRING): estilo de trazo (ej: "trazos").
  • grosor (NUMERICO): grosor de línea.
  • color (STRING): color RGBA en hex (ej: "#3A7BD5AA"). |

Valor de retorno

LOGICO - Resultado logico de la exportacion.

  • VERDADERO: el grafico fue generado/exportado correctamente.
  • FALSO: fallo la generacion.

Ejemplo

ejemplo.blox
INCLUIR "vectores.api"
INCLUIR "estadisticas.api"
INCLUIR "archivos.api"
INCLUIR "strings.api"
INCLUIR "graficos.api"

FUNCION PRINCIPAL
INICIO

   STRING archivo
   NUMERICO i, j, puntos, x_min, x_max, y_max, y_min
   NUMERICO ancho
   TABLA s

   archivo = "PROG01 - INTERNAS GRAFICOS - GRAFICAR() estadisticas.sturges() y graficar_sturges().png"


   // 1. Cargar datos y procesarlos con la tecnica sturges
   //
      s = estadisticas.sturges("sturges2.txt")

      puntos = s[1].K
      x_min  = s[1].xmin
      x_max  = s[1].xmax
      ancho  = s[1].ancho


   // 2. Montaje de datos para graficar
   //
      VECTOR xs[], ys[]

      xs = s[1].centros
      ys = s[1].frec_abs


   // 3. Establecer Rango X
   //
       x_min = xs[0] - ancho / 2
       x_max = xs[puntos - 1] + ancho / 2


   // 4. Establecer Rango Y
   //
       SI (ES_CAMPO(s[1], "ymax_plot")) ENTONCES
           y_max = s[1].ymax_plot
       SINO
           y_max = vectores.maximo(ys) * 1.10
       FIN_SI

       SI (y_max <= 0) ENTONCES
           y_max = 1
       FIN_SI

   // 5. Armar las Series para graficar
   //
      TABLA s_barras, s_poly

      s_barras = { tipo = "barras", x = xs, y = ys, bar_width = ancho, color = "#3A7BD5AA" }
      s_poly   = { tipo = "xy",     x = xs, y = ys, trazo = "trazos", grosor = 2, color = "#1A3D8CFF" }


   // 6. Configurar los Ejes
   //
      TABLA eje_x, eje_y
      eje_x = { nombre = "Eje x", min = x_min, max = x_max, orientacion = "horizontal", cuadricula = 0.1 }
      eje_y = { nombre = "Eje y", min = 0,     max = y_max, orientacion = "vertical",   cuadricula = 1 }


   // 7. Armar las Etiquetas
   //
      TABLA t_etiquetas
      t_etiquetas = { mostrar = VERDADERO, texto = v_etiquetas, orientacion = -45, fuente = 22, esp = 1, color = "#000000FF" }


   // 8. Montar tabla de Grafico
   //
      TABLA g
      g = {
         tipo        = "barras",
         titulo      = "Sturges",
         etiquetas   = t_etiquetas,
         ejex        = VERDADERO,
         ejey        = VERDADERO,
         abscisas    = eje_x,
         ordenadas   = eje_y,
         datos       = { Histograma = s_barras, Poligono = s_poly},
         ancho       = 960, alto = 540, margen = 60,
         archivo     = "PROG01 - INTERNAS GRAFICOS - GRAFICAR() estadisticas.sturges().png"
      }


   // Llamar a la funcion que grafica
   //
      GRAFICAR(g[1])


FINAL