Syntaxe PLOT

Présentation

PLOT est une extension SQL fournie par Entrance pour réaliser des graphiques. Les scripts contenant PLOT peuvent être exécutés depuis l'application de bureau Entrance, être saisis sur la ligne de commande de EntranceServlet ou être incorporés à d'autres applications.

Exemple simple

Une commande PLOT est composée de deux parties : une partie relative à la configuration du graphique et une partie contenant la commande SELECT. Voici un exemple et son résultat.
PLOT
  AXISLABELS, ORANGE LINE
SELECT
  year, avg FROM cpi_annual;
N'importe quelle instruction SQL SELECT peut être utilisée. Il est important que les séries de graphiques LINES, BARS, etc. utilisées dans la partie configuration du graphique correspondent exactement aux colonnes de la partie SELECT.

Syntaxe PLOT

  PLOT [optional_chart_type]

    chart_series_type [, ...]

      [WITH]
        [SCALE (axis) {(min) (max) (incr) | LOG | LOG10 }]
        [ZEROBASED]                              

        [[NO] CLIP]

        [[HORIZONTAL | VERTICAL] GRIDLINES]    

        [TITLE [LEFT | RIGHT | CENTER] "chaîne"] ...
        [TITLE (axis) "chaîne"]

        [NOTE     [LEFT | RIGHT | CENTER] "chaîne"] ...
        [COMMENT [LEFT | RIGHT | CENTER] "chaîne"] ...

        [FORMAT (axis) {AUTO | PLAIN | SCIENTIFIC | 
	   DECIMAL "(decimal format)" | "date_time_format"]
        [LABELANGLE {0 | 90}]
        [[color] [line_type] [HORIZONTAL | VERTICAL] GRIDLINES]

        [FONT font_family font_style font_size]
        [TITLEFONT font_family font_style font_size]

        [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 | AT (page x) (page y)]
        [color] LEGENDITEM 

        [NO BITMAP | BITMAP "(nom du fichier PNG)"]
        [PAGEBITMAP "(nom du fichier PNG)"]

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

        [PAGE 0 0  right_x bottom_y]

        [BARWIDTH (double 0 - 1.0)]     
        [BARSEPARATION (entier)]        
        [BAROVERLAP (0 ou 1)]            
        [SKINNY]

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

         [THROUGHNULLS]

         [OTHERSLICE "(label)" (amount) (color)]


         [PAGENAME "(nom)"]

         [TRANSLUCENCE (entier 0-255)]
         [LAYERS "(chemin du répertoire)"]
         [VERSION "(chaîne de version)"]

         SEND [TO] [DELETE IF EXISTS] { filename | TEMPORARY}
        
  SELECT
     (corps de l'instruction SQL);

Types de graphiques

Par défaut, PLOT trace un graphique en courbes pouvant combiner des courbes, des barres, des aires et des marques. Il est aussi possible de spécifier d'autres types de graphiques. Vous pouvez, par exemple, utiliser SCATTER pour tracer des nuages de points comme ci-dessous :
PLOT SCATTER
    X, DARK BUTTER CIRCLE
  WITH 
    SCALE Y -1 1 1
    TITLE "Titre"
    TITLE X "Titre X"
    TITLE Y "Titre Y"
SELECT
  4 * x * COS(y * 2 * PI()),
     x * SIN(y * 2 * PI()) 
  FROM ref2;
Voici les types de graphiques pris en charge par Entrance :

LINECHART
C'est la bête de somme des graphiques pour tracer des courbes, des marques, des barres et des aires. Il permet aussi de tracer des bandes et des courbes WHEN (whenlines). Voici un exemple : "
Courbes et marques".

BARCHART, HISTOGRAM, AREACHART
Ce sont des extensions des graphiques en courbes fournissant différents paramètres par défaut. Voici des exemples de graphiques en barres : "Charting Counts with SQL and Entrance".

ROTATEDBARCHART
Barres horizontales. Vous trouverez des exemples sur ce blog : "Rotated Bars".

STACKEDBARCHART
Barres empilées. Voici des exemples : "Stacked Bars".

SCATTER (ou XYCHART)
Trace des points de données (x,y) en utilisant des marques ou des courbes. Voici un exemple : "Add a Second X or Y Axis".

TIMEYCHART, DATEYCHART, DATETIMEYCHART, DATETIMEDIRCHART
Permet de tracer des points de données (time,y), (date,y) ou (datetime, y) sous forme de graphique en nuage de points. Voir les exemples "DATETIME-Y Charts". Dans la version 1.5 et les versions ultérieures, DATETIMEDIRCHART traçait aussi des vecteurs (voir par exemple Plotting Wind Direction and Speed).

CORRELATION
Affiche un graphique de corrélation : un tableau de graphiques en nuage de points représentant des paires de colonnes comparées les unes aux autres. Voir les exemples à la section "Correlation Charts".

HIGHLOWCHART, CANDLESTICK, BURNDOWN
Affiche les valeurs maximales, minimales et de clôture. Ces graphiques contiennent aussi des lignes et des marques. Voir les exemples à la section "High Low Charts".

WHISKERSCHART
Affiche des boîtes à moustaches sur un axe vertical.

BITMAPCHART
Dessine un graphique en nuage de points (ScatterChart) sur une image d'arrière-plan. Voir l'exemple : "Bitmap Charts".

EARTHCHART
Trace des points de latitude et longitude relatifs à la terre. Voir les exemples : "EarthCharts", "Earthquakes" et "EarthChart and KML Export".

COLORINGBOOK
Dessine des couleurs dans des couches de masques de formes. Les séries LAYERS sont utilisées pour faire correspondre les chaînes d'une colonne de base de données aux couches de bitmaps dans un livre à colorier. COLOR OVERRIDE permet d'attribuer les couleurs des couches. TRANSLUCENCE détermine le nombre de couches affichées les unes sur les autres. Voir l'exemple "More About ColoringBooks".

USCOLORINGBOOK
Dessine des couleurs sur une carte des Etats-Unis. Vous pouvez, par exemple, réaliser la carte classique rouge et bleue des Etats-Unis. Voir l'exemple Coloring the US States.

PIECHART
Dessine un graphique circulaire. Voir les exemples "Pies" et "Entrance Colors".

RADARCHART
Exemples : Graphiques en toile d'araignée (radar)

Grâce à Java®, il est possible d'étendre le système à d'autres types de graphiques. Veuillez nous contacter pour de plus amples informations.

Types de séries

Les types de série figurant dans une instruction PLOT doivent correspondre un par un avec les colonnes de l'ensemble de résultats généré par l'instruction SELECT qu'elle inclut. Voici les types de série qu'il est possible d'utiliser :

[ALL | ONLY (n)] AXISLABELS
Trace des libellés d'axe sur l'axe des X des graphiques de série chronologique élémentaires et sur l'axe des Y des graphiques à barres horizontales. Utilisé sans modificateur, AXISLABELS permet de spécifier le nombre de libellés à ignorer entre les libellés dessinés.

    ALL        tous les libellés sont dessinés (aucun libellé n'est ignoré)
    ONLY (n)   seul le nombre de libellé spécifié (n) sera dessiné
Voir "
Axis Labels" pour plus d'exemples.

[color] [line_type] [line_width] LINE
Trace des lignes. Des couleurs saturées telles que RED, BLUE, GREEN et les couleurs de bureau Tango (Tango Desktop colors) fonctionnent bien pour les lignes.

[color] BAR
Trace des barres pour les valeurs de colonnes. Des couleurs claires comme LIGHT RED ou VERY LIGHT RED fonctionnent bien pour les barres et les types de séries utilisés en remplissage.

[color] AREA
Dessine des aires.

[color] [marker_size] [marker_fill] marker_type [AND LINES]
Dessine des marques ou des marques et des lignes. CIRCLE, BOX et TRIANGLE sont des marques fréquemment utilisées.

[color] STEPPEDAREA
Dessine des aires en escalier. Voir "Stepped Lines and Areas" pour plus d'exemples.

[color] [line_type] [line_width] STEPPEDLINE
Dessine des courbes en escalier. Voir "Stepped Lines and Areas" pour plus d'exemples.

[color] SWATH
Dessine des couleurs entre les lignes. La première instruction SWATH détermine le premier côté de la bande $$. La deuxième instruction SWATH détermine le second côté. Si une troisième série SWATH est spécifiée, la couleur est dessinée entre cette série et la seconde et ainsi de suite. La première valeur de couleur de bande est ignorée. Par la suite, les attributs de couleur sont appliqués.   Voir "Color a SWATH" pour plus d'exemples.

LENGTH
La longueur des vecteurs dans un graphique DateTimeDirChart. Voir
"Plotting Wind Direction and Spped" pour plus d'exemples

[color]
La direction des vecteurs dans un graphique DateTimeDirChart, sous forme de degrés de 0 à 360. Voir "Plotting Wind Direction and Speed".

[color] HIGH
La série des valeurs maximales dans un graphique boursier HighLowChart.

[color] LOW
La série des valeurs minimales dans un graphique boursier HighLow.

[color] OPEN
La série des valeurs d'ouverture dans un graphique boursier HighLowChart.

[color] CLOSE
La série des valeurs de fermeture dans un graphique boursier HighLowChart.

SKIP
Ignore une colonne (ce qui signifie que rien n'est dessiné).

PIECHART
Dessine des libellés sur des secteurs de graphique circulaire.

PIEVALUE
Dessine des secteurs de graphique circulaire.

DATALABELS [ABOVE | BELOW | LEFT | RIGHT | CENTERED]
Dessine des libellés de données sur des points d'un graphique. L'alignement des libellés peut être défini.

[color] [line_type] WHENLINES
Dessine des lignes verticales avec libellés sur un graphique en courbes ou l'un de ses graphiques dérivés. Des courbes sont dessinées pour les valeurs non nulles et les libellés apparaissent lorsque les colonnes contiennent des chaînes qui ne sont pas vides.

LAYERNAME
Définit la colonne LAYERNAME d'un livre à colorier (ColoringBook). Vous pouvez utiliser cette instruction pour afficher les noms d'états lorsque vous dessinez la carte des Etats-Unis (USColorBook).

LAYER
Définit la colonne contenant les noms de couches dans un livre à colorier (ColoringBook) ou dans la carte des Etats-Unis (USColoringBook).

COLOR OVERRIDE
Change la couleur utilisée pour les points de données ayant une valeur non nulle dans la colonne affectée. Utilisez des noms de couleur tels que "RED", "BLUE", etc. dans la colonne. Voir "Legends" pour plus d'exemples.

SIZE OVERRIDE
Change la taille des marques utilisées pour les points de données ayant une valeur non nulle dans la colonne affectée. Voir le blog "Bubble Charts" pour plus d'informations sur l'utilisation de SIZE OVERRIDE.

EXPLODE

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

Autres mots-clés

La configuration du graphique peut inclure des fonctions autres que les types de séries basiques. Ils doivent suivre WITH.

SCALE [(axis)] {(min) (max) (incr) | LOG | LOG10 }
Définit l'échelle de l'axe et peut être X, X2, Y ou Y2. Si l'axe n'est pas spécifié, on suppose qu'il s'agit de l'axe Y d'un graphique vertical ou de l'axe X d'un graphique à barres horizontales. L'échelle peut être définie en utilisant les valeurs minimales, maximales et incrémentielles ou une échelle logarithmique. LOG utilise le logarithme naturel (ou népérien) et LOG10 est le logarithme de base 10.

ZEROBASED
Inclut zéro dans les échelles des axes d'un graphique.

[NO] CLIP
Active et désactive le détourage. Si le détourage est activé, rien n'apparaîtra à l'extérieur du cadre du graphique.

TITLE [LEFT | RIGHT | CENTER] "chaîne"
Utilise "chaîne" comme titre et l'affiche au-dessus du graphique. Un nombre illimité de titres peut être dessiné. Si aucune valeur d'alignement telle que LEFT, RIGHT ou CENTER n'est spécifiée, le titre est centré.

TITLE (axis) "chaîne"
Utilise "chaîne" comme titre sur un axe (il peut s'agir de l'axe des X, X2, Y ou Y2).

NOTE [LEFT | RIGHT | CENTER] "chaîne"
Utilise "chaîne" comme note ou commentaire sous le graphique. Un nombre illimité de notes peut être dessiné. Si aucune valeur d'alignement telle que LEFT, RIGHT ou CENTER n'est spécifiée, la note est centrée.

COMMENT [LEFT | RIGHT | CENTER] "chaîne"
Utilise "chaîne" comme commentaire à l'intérieur du graphique. Un nombre illimité de commentaires peut être dessiné. Si aucune valeur d'alignement telle que LEFT, RIGHT ou CENTER n'est spécifiée, le commentaire est centré.

FORMAT (axis) {AUTO | PLAIN | SCIENTIFIC | DECIMAL "(decimal format)" ] | "(datetime format)"
Spécifie le format des libellés des axes (X, X2, Y ou Y2).

  AUTO détermine le format automatiquement.
  PLAIN utilise des libellés sous forme d'entiers
  SCIENTIFIC utilise la notation scientifique
  DECIMAL utilise le protocole DecimalFormat de Java pour les échelles numériques 

    Dans une chaîne (au format décimal) :
       0 est un chiffre
       # est un chiffre, les zéros de fin sont supprimés
       . est le séparateur décimal ou monétaire de la locale
       , est le séparateur de groupe

       Les formats décimaux peuvent contenir des caractères Unicode,
       par exemple :  \u00B0 pour le symbole des degrés

       Le symbole pourcentage ( % ) déclenche une multiplication par 100.  Pour éviter
       cela, vous devez l'entourer de guillemets comme dans l'exemple suivant :   FORMAT Y DECIMAL "##.0'%'" 


  Utilisez ces modèles pour la chaîne de format dans DateYChart,
       TimeYChart, DateTimeYChart ou DateTimeDirChart :
          %Y   - année sur quatre chiffres
          %y   - année sur deux chiffres
          %m   - mois  (00-12)
          %b   - nom de mois sous forme abrégée (Jan-Déc)
          %d   - jour du mois (00-31)
          %H - heures 00-23
          %i - minutes 00-59
          %S - secondes 00-59
          %s - secondes 00-59

LABELANGLE {0 | 90}
Détermine l'angle de l'axe des X sur un graphique DateYChart, TimeYChart ou DateTimeYChart.

[color] [line_type] [HORIZONTAL | VERTICAL] GRIDLINES
Active l'affichage des lignes de la grille. Si vous ne spécifiez ni HORIZONTAL ni VERTICAL, les deux types sont activés. La couleur de la grille et le type de ligne peuvent aussi être spécifiés.

FONT font_family font_style font_size
Définit la police utilisée pour le texte du graphique. Les familles de police disponibles dépendent du système d'exploitation, mais "sans serif", "serif" et "monospaced" sont toujours disponibles. Le style de police peut être PLAIN, BOLD ou ITALIC. Les tailles de polices sont spécifiées en points.

TITLEFONT font_family font_style font_size
Définit la fonte utilisée pour les titres. Si TITLEFONT est absent, la valeur de FONT sera utilisée.

FOREGROUND color
Définit la couleur des éléments d'avant-plan du graphique.

BACKGROUND color
Définit la couleur d'arrière-plan.

FRAMECOLOR color
Définit la couleur du cadre. La couleur du cadre sera la couleur d'arrière-plan si FRAMECOLOR est absent.

[NO] SIDES
Active et désactive le dessin des côtés du graphique.

[NO] COLLAR
Active et désactive l'affichage d'une "collerette de protection" sur les côtés du graphique.

[NO] YAXIS
Active et désactive l'affichage de l'axe des Y. Il est activé par défaut.

[NO] XAXIS
Active et désactive l'affichage de l'axe des X. Il est activé par défaut.

[NO] X2AXIS
Active et désactive l'affichage de l'axe des X2. Il est activé par défaut.

[NO] Y2AXIS
Active et désactive l'affichage de l'axe des Y2. Il est activé par défaut.

[NO] LABELS (axis) [ON {TOP | BOTTOM | LEFT | RIGHT}]
Active et désactive l'affichage des libellés des axes. Permet aussi de définir si les libellés sont au-dessus ou en dessous de l'axe horizontal, ou à droite ou à gauche de l'axe vertical.

[NO] TICKS (axis) [ON {TOP | BOTTOM | LEFT | RIGHT}]
Active et désactive l'affichage des marques de graduation. Permet aussi de définir si les marques de graduation sont au-dessus ou en dessous de l'axe horizontal, ou à droite ou à gauche de l'axe vertical.

[NO] AXISLINE (axis)
Active et désactive l'affichage de la ligne (axe).

[NO] LEGEND [RIGHT | BOTTOM | AT (page x) (page y)\
Active ou désactive l'affichage de la légende. Peut être utilisé pour placer la légende à droite du graphique, en dessous ou dans le coin supérieur gauche à l'emplacement (x,y). Voici des exemples : "
Legends".

[color] LEGENDITEM
Ce mot-clé permet d'ajouter des éléments à une légende, ce qui peut être très utile lorsque vous utilisez COLOR OVERRIDES. Voici des exemples : "
Legends".

NO BITMAP | BITMAP "(nom du fichier PNG)"
Dans un graphique BitmapChart, "NO BITMAP" empêche l'affichage du bitmap d'arrière-plan. Cela peut être utile si vous voulez permuter l'affichage entre un fond avec bitmap et un fond noir.

PAGEBITMAP "(nom du fichier PNG)"
Indique le nom d'un fichier PNG utilisé comme image d'arrière-plan d'une page.

FRAME {TO FIT | INSETS left right top bottom | left_x top_y right_x bottom_y}
FRAME TO FIT, valeur par défaut, indique à Entrance de cadrer le cadre automatiquement. FRAME peut aussi être utilisé pour définir un cadre en pixels à l'intérieur de la page en cours. Utilisez FRAME et PAGE ensemble pour créer des
sparklines (lignes-étincelles).

PAGE 0 0 right_x bottom_y
Définit la largeur et la hauteur d'une page. (Il n'est pas possible de modifier le décalage du coin gauche, utilisez "frame" à la place). Ainsi, PAGE doit être utilisé si vous voulez réaliser un petit graphique pour un téléphone portable, par exemple.

BARWIDTH (integer 0 - 100)
Définit la largeur des barres en tant que pourcentage de l'espace disponible. Voir "
Bar Charts" pour plus d'exemples.

BARSEPARATION (entier)
Définit la séparation entre des barres sous forme d'unités. Voir "
Bar Charts" pour plus d'exemples.

BAROVERLAP (0 or 1)
Définit si les barres se chevauchent ou pas : 0 correspond à "ne se chevauchent pas", 1 correspond à "se chevauchent". .   Voir "
Bar Charts" pour plus d'exemples.

SKINNY
Dessine le second ensemble de barres à 1/3 de la largeur de la barre en cours. Utilisez SKINNY avec BAROVERLAP 1. "
Comparing Today to Yesterday" est un exemple d'utilisation.

MARKER (marque)
Définit la marque par défaut.

PALETTE [TRANSPARENT] {"Tango" | "Bright" | "Light" | "Very Light" | "Blue Shades" | "Red Shades" | "Gray Shades"}
Désapprouvé. Définit la palette en cours.

THROUGHNULLS
Par défaut, les segments de lignes s'arrêtent aux valeurs nulles. THROUGHNULLS a pour effet de les dessiner entre des valeurs valides, avant et après les valeurs nulles.

OTHERSLICE "(label)" (amount) (color)

PAGENAME "(nom)"
Provoque l'affichage du nom sur un volet de sortie.

TRANSLUCENCE (entier entre 0 et 255)
Définit un affichage translucide des couches dans un livre à colorier.

LAYERS "(chemin du répertoire)"]
Définit le chemin d'un répertoire contenant des couches d'images dans un livre à colorier. Voir l'exemple "
More About Coloring Books".

VERSION "(chaîne de version)"]
Définit la version de PLOT nécessaire à l'exécution de ce script.

Couleurs

Les couleurs "classiques" plus les couleurs de la palette du Tango Desktop sont prises en charge :
    RED  GREEN  BLUE  YELLOW  CYAN  MAGENTA  WHITE  LIGHTGRAY  
    GRAY DARKGRAY  BLACK BUTTER  ORANGE  CHOCOLATE  CHAMELEON 
    SKYBLUE  PLUM  SCARLETRED  ALUMINUM  CHARCOAL   
Toute couleur peut être VERY LIGHT, LIGHT, DARK ou VERY DARK. Elles peuvent aussi être TRANSPARENT ou VERY TRANSPARENT.

Pour spécifier les valeurs red, green, blue, utilisez RGB(r,g,b), et pour les spécifier avec des valeurs alphanumériques, utilisez RGB(r,g,b,a).

Pour des exemples relatifs aux couleurs, voir "Entrance Colors".

Styles de lignes

Les styles de ligne suivants sont pris en charge :
   DOTTED  DASHED  SOLID

Largeurs de lignes

Les largeurs de ligne suivantes sont prises en charge :
   THIN  NORMAL  THICK, VERY THICK

Formes de marques

Les formes de marques suivantes sont prises en charge :

 BOX                   DIAMOND
 CIRCLE                HORTICK 
 TRIANGLE              VERTICK
 OTHERTRIANGLE         XSYMBOL 
 PLUS 

Tailles de marques

Les marques peuvent avoir l'une des tailles suivantes :
 TINY             BIG
 SMALL            VERY BIG
 VERY SMALL       BARSIZE
BARSIZE permet de définir la largeur de HORTICKS afin qu'elle corresponde à la largeur des barres d'un graphique à barres. Vous pouvez spécifier la taille en utilisant la commande SIZE OVERRIDE de la colonne pour définir une autre taille ou des variations de taille. Les redéfinitions de taille sont effectuées en pixels.

Remplissage de la marque

Le remplissage de la marque peut être l'une des valeurs suivantes :
   FILLED 
   UNFILLED 
   MASKED 

URL connexes

http://dbentrance.com/newdocs/fr/plotsyntax.html is this document
http://dbentrance.com/blog/ pour lire des conseils et astuces.