Sintaxis PLOT

Overview

PLOT es una extensión SQL de Entrance para construir gráficos. Los scripts que contienen PLOT pueden ser ejecutados desde la aplicación Entrance, desde la línea de comandos, desde el EntranceServlet, o internamente en otras aplicaciones.

Un Ejemplo Simple

Un comando PLOT tiene dos partes: una parte de preparación del gráfico y una parte SELECT. Este es un sencillo ejemplo con su resultado:
PLOT
  AXISLABELS, ORANGE LINE
SELECT
  year, avg FROM cpi_annual;
Cualquier comando SQL SELECT funcionará. Lo importante es que los LINES, BARS y otras series de la preparación gráfica se emparejen de uno-a-uno con las columnas de la parte SELECT.

Sintaxis PLOT

  PLOT [tipo opcional de gráfico]

    tipo de serie de gráfico [, ...]

      [WITH]
        [SCALE (axis) {(min) (máx) (incr) | LOG | LOG10 }]
        [ZEROBASED]                              

        [[NO] CLIP]

        [[HORIZONTAL | VERTICAL] GRIDLINES]    

        [TITLE [LEFT | RIGHT | CENTER] "texto"] ...
        [TITLE (axis) "texto"]

        [NOTE     [LEFT | RIGHT | CENTER] "texto"] ...
        [COMMENT [LEFT | RIGHT | CENTER] "texto"] ...

        [FORMAT (axis) {AUTO | PLAIN | SCIENTIFIC | 
	   DECIMAL "(formato decimal)" | "formato_fecha_hora"]
        [LABELANGLE {0 | 90}]
        [[color] [tipo de linea] [HORIZONTAL | VERTICAL] GRIDLINES]

        [FONT familia_de_fuente estilo_de_fuente tamaño_de_fuente]
        [TITLEFONT familia_de_fuente estilo_de_fuente tamaño_de_fuente]

        [FONTSIZE font_size]
        [TITLEFONTSIZE font_size]

        [FOREGROUND color]
        [BACKGROUND color]
        [FRAMECOLOR color]

        [[NO] SIDES]
        [[NO] COLLAR]

        [[NO] YAXIS]
        [[NO] XAXIS]
        [[NO] X2AXIS]
        [[NO] Y2AXIS]

        [[NO] LABELS (axis) [ON {TOP | BOTTOM | LEFT | RIGHT}]
        [[NO] TICKS (axis) [ON {TOP | BOTTOM | LEFT | RIGHT}]
        [[NO] AXISLINE (axis) [ON {TOP | BOTTOM | LEFT | RIGHT}]

        [[NO] LEGEND [RIGHT | BOTTOM | ON (página x) (página y)]
        [color] LEGENDITEM 

        [NO BITMAP | BITMAP "(nombre de archivo PNG)"]
        [PAGEBITMAP "(nombre de archivo PNG)"]

       [FRAME {TO FIT |
                 INSETS left top bottom right |
                 left_x top_y right_x bottom_y}]

        [PAGE 0 0  x_derecha y_inferior]

        [BARWIDTH (double 0 - 1.0)]     
        [BARSEPARATION (integer)]        
        [BAROVERLAP (0 or 1)]            
        [SKINNY]

        [MARKER tipo_de_marcador]

        [PALETTE [TRANSPARENT] {"Tango" | "B" | "Light" |
              "Very Light" | "Blue Shades" | "Red Shades" |
              "Gray Shades"}]

         [THROUGHNULLS]

         [OTHERSLICE "(etiqueta)" (cantidad) (color)]

         [PAGENAME "(nombre)"]   

         [TRANSLUCENCE (integer 0-255)]
         [LAYERS "(ruta de acceso a directorio)"]
         [VERSION "(texto de versión)"]

         SEND [TO] [DELETE IF EXISTS] { filename | TEMPORARY}
        
  SELECT 
     (SQL cuerpo de declaración select);

Tipos de Gráficos

Por defecto, PLOT dibuja un LineChart que puede mezclar líneas, barras, áreas y marcadores. También se pueden especificar otros tipos de gráficas. Por ejemplo, se puede usar SCATTER para dibujar gráficas de dispersión como esta:
PLOT SCATTER
    X, DARK BUTTER CIRCLE
  WITH 
    SCALE Y -1 1 1
    TITLE "Title"
    TITLE X "X Title"
    TITLE Y "Y Title"
SELECT
  4 * x * COS(y * 2 * PI()),
     x * SIN(y * 2 * PI()) 
  FROM ref2;
Estos son los tipos de gráficos que Entrance soporta:

LINECHART
Este es el gráfico más común para dibujar líneas, marcadores, barras y áreas. También puede dibujar franjas y "whenlines". Un ejemplo se puede ver aquí: "
Líneas y Marcadores".

BARCHART, HISTOGRAM, AREACHART
Estas son extensiones de LINECHART que proveen otras opciones por defecto. Ejemplos de gráficos de barras se puede ver aquí: "Graficando Conteos con SQL y Entrance".

ROTATEDBARCHART
Barras horizontales. Ejemplos existen en esta entrada blog "Barras Horizontales (ROTATEDBARCHART) ".

STACKEDBARCHART
Barras apiladas. Existen ejemplos aquí: "Barras Apiladas".

SCATTER (o XYCHART)
Gráfica puntos de datos (x,y) utilizando marcadores o líneas. Vea un ejemplo en "Añada un Segundo Axis X o Y".

TIMEYCHART, DATEYCHART, DATETIMEYCHART, DATETIMEDIRCHART
Estos grafican puntos de datos (time,y), (date,y) o (datetime, y) en un SCATTERCHART. Hay ejemplos en "DATETIME-Y Charts" A partir de la versión 1.5, DATETIMEDIRCHART también dibuja vectores, por ejemplo. Dibuja la dirección y velocidad del viento

CORRELATION
Muestra una colección de diagramas de dispersión dibujando parejas de columnas unas contra otras. Ejemplos en "Gráficos de correlación".

HIGHLOWCHART, CANDLESTICK, BURNDOWN
Muestra máximos, mínimos y valores cercanos. También se pueden añadir al gráfico líneas y marcadores. Ejemplos en "Máximo Mínimo Gráficos".

WHISKERSCHART
Muestra marcas en el eje vertical.

BITMAPCHART
Dibuja un gráfico de dispersión (ScatterChart) sobre una imagen. Un ejemplo en "Gráficos Bitmap".

EARTHCHART
Dibuja puntos de latitud y longitud sobre una imagen de la Tierra. Ejemplos en "EarthCharts", "Terremotos," y "EarthChart y KML Exportación".

COLORINGBOOK
Pinta de color capas con formas. Usar series LAYERS para emparejar cadenas en la base de datos con capas bitmap en la selección de colores (COLORINGBOOK). Usar COLOR OVERRIDE para asignar los colores a las capas. TRANSLUCENCE determina el grado de transparencia de una capa sobre otra. Verlo en "Más información sobre ColoringBooks" con un ejemplo.

USCOLORINGBOOK
Pintar colores sobre los Estados Unidos, por ejemplo para hacer el clásico "Rojo-Azul Estados" mapa. See Pintando los Estados Unidos por ejemplo.

PIECHART
Dibuja el típico diagrama de tarta. Ejemplos en "Diagrama de tarta" y "Colores en Entrance".

RADARCHART
Ejemplos: Diagramas de Radar

Usando Java® es posible añadir al sistema otro tipos de gráficos. Contactar para más detalles.

Series Types

Los tipos de series en una sentencia PLOT deberán corresponder 1 a 1 con las columnas de los resultados generados por la sentencia SELECT. A continuación tenemos los diferentes tipos.

[ALL | ONLY (n)] AXISLABELS
Dibuja etiquetas en el eje X en las series de gráfico de tiempo (time series charts) y en el eje Y en el caso de barras horizontales (RotatedBarChart). Usando un modificador AXISLABELS se conseguirá un número razonable de etiquetas para evitar solapación.

    ALL        Se mostrarán todas las etiquetas
    ONLY (n)   sólo (n) etiquetas serán dibujadas
Ver "Axis Labels" ejemplos.

[color] [line_type] [line_width] LINE
Dibuja líneas. Colores como el Rojo (RED), Azul (BLUE), Verde (GREEN) y el Tango Desktop se adaptan bien con el uso de líneas.

[color] BAR
Dibuja barras para unos valores de columna. Colores claros como LIGHT RED o VERY LIGHT RED se muestran bien con este tipo de gráficos y otro tipos de series macizas.

[color] AREA
Dibuja áreas.

[color] [marker_size] [marker_fill] marker_type [AND LINES]
Dibuja marcadores y líneas. Círculo (CIRCLE), Caja (BOX), y Triángulo (TRIANGLE) son los marcadores más usuales.

[color] STEPPEDAREA
Gráfica áreas de escalera. Ver "Gráficos de Escalera" para ejemplos.

[color] [line_type] [line_width] STEPPEDLINE
Dibuja líneas de escalera. Ver "Gráficos de Escalera" para ejemplos.

[color] SWATH
Rellena de color entre líneas. El primer SWATH indica un lado de la franja. El siguiente SWATH determina el segundo lado. Si se indica un tercer SWATH, se coloreará otro color entre ese y el segundo SWATH y así sucesivamente. En la sintaxis no se añade el primer color con el primer SWATH. Posteriormente, los colores deberán ser indicados.   Ver "Colorear un SWATH" por ejemplos.

LENGTH
La longitud del los vectores en un DateTimeDirChart. Por ejemplo
"Dibuja la dirección y velocidad del viento"

[color]
La dirección de los vectores en un DateTimeDirChart, como grados 0-360. Ver ejemplo "Dibuja la dirección y velocidad del viento"

[color] HIGH
La serie de valores máximos en un HighLowChart.

[color] LOW
La serie de valores mínimos en un HighLowChart.

[color] OPEN
La serie de valores más abiertos en un HighLowChart.

[color] CLOSE
La serie de valores más cerrados en un HighLowChart.

SKIP
Para saltarse una columna, para por ejemplo dibujar nada.

PIELABEL
Muestra las etiquetas en un gráfico de tarta.

PIEVALUE
Muestra los valores en un gráfico de tarta.

DATALABELS [ABOVE | BELOW | LEFT | RIGHT | CENTERED]
Muestra las etiquetas de valores de los puntos en un gráfico. Se puede seleccionar la alineación de las etiquetas.

[color] [line_type] WHENLINES
Muestra línes verticales etiquetadas en un gráfico de líneas (LineChart) o cualquier de sus gráficos derivados. Las líneas son dibujadas para los valores no nulos, y etiquetadas cuando la columna contiene una cadena no vacía.

LAYERNAME
Fija la columna nombrada (LAYERNAME) con un color (ColoringBook). Uso de este para los nombres de los estados en un USColorBook.

LAYER
Fija la columna que contiene un nombre de etiqueta con un color (ColoringBook) o USColoringBook.

COLOR OVERRIDE
Cambia un color mostrado por los datos con un valor no nulo en la columna asignada. Usa nombre de colores como rojo "RED", azul "BLUE" y así en la columna. Ver ejemplos en "Legends".

SIZE OVERRIDE
Esta función cambia el tamaño del marcador mostrado para los datos con un valor no nulo asignado en la columna. En el blog "Gráficos de burbuja (Bubble Charts)" se muestra el uso de la función.

EXPLODE
En un gráfico de tarta (PieChart), EXPLODE asigna valores de 0-100 para compensar como porcentaje de la tarta desde el centro de la tarta. Un valor null significa no compensar "no offset".

FIRSTX
FIRSTY
SECONDX
[color] [line_width] [line_type]SECONDY

Otras palabras clave

Las especificaciones del gráfico pueden incluir otras características además de los típicos básicos. Estos deben ser seguidos del comando WITH.

SCALE [(axis)] {(min) (max) (incr) | LOG | LOG10 }
Fija la escala de los ejes, los cuales pueden ser X, X2, Y o Y2. Cuando el eje no es especificado se asume que es Y en un gráfico vertical, o X en un gráfico horizontal. La escala puede ser fijada usando un mínimo, máximo, por incremento o escala logarítmica. LOG usa logaritmo neperiano y LOG10 el llogaritmo en base 10.

ZEROBASED
Fuerza la inclusión del cero en el eje para un gráfico.

[NO] CLIP
Activa o desactiva CLIP. Cuando CLIP está activado nada se dibujará fuera del marco del gráfico.

TITLE [LEFT | RIGHT | CENTER] "string"
Se usa TITLE "string" para poner un título por encima del gráfico. Se puede poner un ilimitado número de títulos. Cuando no se especifica el tipo de alineación (LEFT, RIGHT o CENTER), este se dibujará por defecto centrado.

TITLE (axis) "string"
Usa "string" para un título en los ejes (axis), los cuales pueden ser X, X2, Y o Y2.

NOTE [LEFT | RIGHT | CENTER] "string"
Usa "string" para una nota a pie de página del gráfico. Un número ilimitado de notas puede ser dibujado. Cuando no se especifica el tipo de alineación (LEFT, RIGHT o CENTER), esta se dibujará por defecto centrada.

COMMENT [LEFT | RIGHT | CENTER] "string"
Usa "string" para poner un comentario al gráfico. Un número ilimitado de comentarios puede ser dibujado. Cuando no se especifica el tipo de alineación (LEFT, RIGHT o CENTER), este se dibujará por defecto centrado.

FORMAT (axis) {AUTO | PLAIN | SCIENTIFIC | DECIMAL "(formato decimal)" ] | "(formato de fecha)"
Epecifica el formato de las etiquetas en los ejes, los cuales pueden ser X, X2, Y o Y2.

  AUTO determina el formato de manera automática.
  PLAIN usa etiquetas de entero
  SCIENTIFIC usa notación científica
  DECIMAL usa Java DecimalFormat protocol para escalas numéricas  

    En una cadena de formato decimal:
       0 es un dígito
       # es un dígito, la presición de los ceros es suprimida
       . es el indicador o separador decimal o dinero
       , es el separador de grupos

       Formatos decimales pueden contener caracteres especiales Unicode,
       ej. \u00B0 para el símbolo de grado

       El símbolo de porcentaje, %, provoca una multiplicación por 100.  Para evitarlo
       se debe rodear por comillas, ejemplo:  FORMATO Y DECIMALES "##.0'%'" 


    Usar estos patrones para el formato de cadena DateYChart,
       TimeYChart, DateTimeYChart o DateTimeDirChart:
          %Y - año con cuatro dígitos
          %y - año con dos dígitos
          %m - mes  (00-12)
          %b - nombre de mes abreviado (Jan-Dec)
          %d - día del mes (00-31)
          %H - horas 00-23
          %i - minutos 00-59
          %S - segundos 00-59
          %s - segundos 00-59

LABELANGLE {0 | 90}
Determina el ángulo de las etiquetas del eje X en un DateYChart, TimeYChart, o DateTimeYChart.

[color] [line_type] [HORIZONTAL | VERTICAL] GRIDLINES
Activa las líneas de cuadrículas (grid lines). Si no se especifica ni HORIZONTAL ni VERTICAL, ambas saldrán por defecto. El tipo y color de las líneas puede ser también especificado.

FONT font_family font_style font_size
Se usa para elegir la fuente usada en un gráfico.  Las familia de fuentes disponibles (font_family) dependen del sistema operativo, aunque "sans serif", "serif", y "monospaced" se encuentran siempre. El estilo de la fuente (font_style) puede ser normal, negrita o itálica (PLAIN, BOLD, ITALIC). El tamaño de la fuente es especificado en puntos.

TITLEFONT font_family font_style font_size
Fija la fuente usada en los títulos. Cuando no se encuentra TITLEFONT, se usa por defecto la fuente principal (en FONT).

FOREGROUND color
Fija el color usado en los objetos en primer plano de un gráfico.

BACKGROUND color
Fija el color de fondo.

FRAMECOLOR color
Fija el color del marco. El color del marco será el mismo que el de fondo (background) si FRAMECOLOR no se encuentra.

[NO] SIDES
Activa o desactiva el dibujo de los lados de un gráfico.

[NO] COLLAR
Activa o desactiva dejando un espacio borde ("collar") a los lados del gráfico.

[NO] YAXIS
Activa o desactiva el dibujo del eje Y. Por defecto está activado.

[NO] XAXIS
Activa o desactiva el dibujo del eje X. Por defecto está activado.

[NO] X2AXIS
Activa o desactiva el dibujo del eje X2. Por defecto está activado.

[NO] Y2AXIS
Activa o desactiva el dibujo del eje Y2. Por defecto está activado.

[NO] LABELS (axis) [ON {TOP | BOTTOM | LEFT | RIGHT}]
Activa o desactiva el dibujo de etiquetas en los ejes. También se puede indicar si se quieren las etiquetas por encima o debajo del eje horizontal, o a la izquierda o derecha del eje vertical.

[NO] TICKS (axis) [ON {TOP | BOTTOM | LEFT | RIGHT}]
Activa o desactiva el dibujo de las marcas en los ejes. También se puede indicar si se quieren las marcas por encima o debajo del eje horizontal, o a la izquierda o derecha del eje vertical.

[NO] AXISLINE (axis)
Activa o desactiva el dibujo de los ejes.

[NO] LEGEND [RIGHT | BOTTOM | AT (page x) (page y)\
Ativa o desactiva el dibujo de la legenda. Esta puede ser colocada a la derecha, debajo o en la esquina superior izquierda del gráfico (x,y).   Aquí se pueden ver algunos ejemplos: "
Legends".

[color] LEGENDITEM
Esta palabra clave permite añadir objetos a una leyenda, lo cual es útil cuando se usan COLOR OVERRIDES. Un ejemplo de esto lo tenemos en: "
Legends".

NO BITMAP | BITMAP "(Nombre del fichero PNG)"
En un gráfico bitmap (BitmapChart), "NO BITMAP" causará que el fondo del gráfico no se dibuje. Esto puede ser útil cuando se quiere ir adelante y detrás entre un fondo bitmap y un fondo negro con la misma escala.

PAGEBITMAP "(Nombre del fichero PNG)"
Especifica un fichero PNG para ser usado como fondo de la página.

FRAME {TO FIT | INSETS left right top bottom |left_x top_y right_x bottom_y}
FRAME TO FIT, estará por defecto, produce que Entrance ajuste al recuadro automáticamente. FRAME puede ser también usado para fijar los pixeles de un recuadro (frame) dentro de la página actual. Usar FRAME y PAGE conjuntamente para hacer
sparklines.

PAGE 0 0 right_x bottom_y
Fija el ancho y alto de la página. (Si no es posible cambiar la compensación (offset) a la esquina izquierda--usar a cambio frame) Por ejemplo, usar PAGE cuando se quiere hacer un gráfico más pequeño para un teléfono móvil.

BARWIDTH (entero 0 - 100)
Fija la anchura de las barras como porcentaje del espacio disponible. Ver "
Gráficos de barras" para ejemplos.

BARSEPARATION (integer)
Fija la separación entre barras. Ver "
Gráficos de barras" para ejemplos.

BAROVERLAP (0 or 1)
Fija si se quiere sobreposición o no de las barras: 0 significa "no sobreponer", 1 "sobreponer".   Ver "
Gráficos de barras" para ejemplos.

SKINNY
Dibuja un segundo conjunto de barras con un 1/3 del actual ancho de las barras. Usar SKINNY con BAROVERLAP 1. "
Comparando Hoy con Ayer" demuestra su uso.

MARKER (marker)
Fija el marcador por defecto.

PALETTE [TRANSPARENT] {"Tango" | "Bright" | "Light" | "Very Light" | "Blue Shades" | "Red Shades" | "Gray Shades"}
Desprecia. Fija la paleta actual.

THROUGHNULLS
Por defecto, los segmentos de línea terminan al encontrarse valores nulos. THROUGHNULLS produce que ellos se dibujen entre los valores válidos y después de los valores nulos.

OTHERSLICE "(label)" (amount) (color)
Añade un trozo de tarta adicional e incrementa el total de la tarta con dicha cantidad (amount).

PAGENAME "(nombre)"
Fija un nombre que aparecerá en una etiqueta de salida.

TRANSLUCENCE (integer 0-255)
Fija una capa translucida en un ColoringBook.

LAYERS "(ruta del directorio)"]
Fija la ruta del directorio donde se encuentran las imágenes de las capas en un ColoringBook. Ver más también en "
Coloring Books" con un ejemplo.

VERSION "(texto de versión))"]
Establece la versión de PLOT requerida para ejecutar este guión.

Colores

Los colores "usuales" y los colores de la paleta Tango Desktop soportados son:
    RED  GREEN  BLUE  YELLOW  CYAN  MAGENTA  WHITE  LIGHTGRAY  
    GRAY DARKGRAY  BLACK BUTTER  ORANGE  CHOCOLATE  CHAMELEON 
    SKYBLUE  PLUM  SCARLETRED  ALUMINUM  CHARCOAL   
Cualquier color puede ser VERY LIGHT, LIGHT, DARK, o VERY DARK. También pueden ser TRANSPARENT o VERY TRANSPARENT.

Para especificar de forma más precisa colores se puede usar la función RGB(r,g,b), y para especificarlos con valores alfa utilize RGB(r,g,b,a).

Puede encontrar colores de ejemplo en "Entrance Colors".

Estilos de Linea

Estos estilos de lineas son soportados (puntos, guiones, sólidas):
   DOTTED  DASHED  SOLID

Ancho de Linea

Estos anchos de linea son soportados (fina, normal, gruesa, muy gruesa):
   THIN  NORMAL  THICK  VERY THICK

Formas de Marcador

Estas formas de marcador son soportadas:

 BOX                   DIAMOND
 CIRCLE                HORTICK 
 TRIANGLE              VERTICK
 OTHERTRIANGLE         XSYMBOL 
 PLUS 

Tamaño de Marcador

Los marcadores pueden ser de cualquiera de estos tamaños
 TINY             BIG
 SMALL            VERY BIG
 VERY SMALL       BARSIZE
Utilize BARSIZE para hacer que el ancho de HORTICKS se iguale al ancho de las barras en un gráfico de barras. Especifique el tamaño utilizando una columna SIZE OVERRIDE cuando se necesite otros tamaños o quiera que los tamaños varien. Los tamaños OVERRIDE se especifican utilizando pixels.

Relleno de Marcador

El tipo de relleno de marcador puede ser:
   FILLED 
   UNFILLED 
   MASKED 

URLs Relacionados

http://dbentrance.com/newdocs/plotsyntax.html es este documento
http://dbentrance.com/blog/ tiene ideas y trucos