Синтаксис PLOT

Описание

PLOT является расширением SQL, созданным Entrance для создания диаграмм. Сценарии, содержащие выражения PLOT могут запускаться из приложения Entrance или из коммандной строки, из Entrance Servlet или быть встроенными в другие приложения.

Простой пример

Команда PLOT состоит из двух разделов: раздел настройки диаграмм и выражение SELECT. Ниже показан простой пример сценария и результат:
PLOT
  AXISLABELS, ORANGE LINE
SELECT
  year, avg FROM cpi_annual;
В сценариях допустимо использовать любые выражения SQL. Существенным является требование однозначного совпадения секций LINES, BARS, и других секций в разделе описания диаграммы со столбцами в выражении SELECT.

Синтаксис 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] "string"] ...
        [TITLE (axis) "string"]

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

        [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 "(PNG file name)"]
        [PAGEBITMAP "(PNG file name)"]

       [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 (integer)]        
        [BAROVERLAP (0 or 1)]            
        [SKINNY]

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

         [THROUGHNULLS]

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


         [PAGENAME "(name)"]

         [TRANSLUCENCE (integer 0-255)]
         [LAYERS "(path to directory)"]
         [VERSION "(version string)"]

         SEND [TO] [DELETE IF EXISTS] { filename | TEMPORARY}
        
  SELECT 
     (SQL select statement body);

Типы диаграмм

По умолчанию, PLOT рисует линейную диаграмму (LineChart), в которой могут присутствовать одновременнно линии, столбцы, области и маркеры. Можно также указать другие типы диаграмм. Например, диаграмме рассеивания соответствует тип SCATTER:
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;
Entrance поддерживает следующие типы диаграмм:

LINECHART

Это наиболее используеммый тип диаграммы, который позволяет отображать линии, маркеры, столбцы и области. Он также может использоваться для рисования зональных диаграмм и диаграмм типа whenline. Пример можно найти здесь:   "
Lines and Markers"

BARCHART, HISTOGRAM, AREACHART
Эти типы являются расширениями LINECHART, представляющими соответствующие типы диаграмм. Примеры:   "Charting Counts with SQL and Entrance"

ROTATEDBARCHART
Диаграмма с горизонтальным расположением столбцов. Пример: "Rotated Bars".

STACKEDBARCHART
Штабельная диграмма. Пример:  "Stacked Bars".

SCATTER (XYCHART)
Изображает значения данных в виде точек в системе координат (x,y). Пример:   "Add a Second X or Y Axis".

TIMEYCHART, DATEYCHART, DATETIMEYCHART, DATETIMEDIRCHART
Изображают значения данных в виде точек в системах координат (time,y), (date,y) или (datetime, y). Примеры: "DATETIME-Y Charts" В версии 1.5 и более поздних DATETIMEDIRCHART также может изображать векторы. Пример:   Plotting Wind Direction and Speed

CORRELATION
Изображает данные в виде массива точек с группировкой по парам столбцов. Примеры: "Correlation Charts".

HIGHLOWCHART, CANDLESTICK, BURNDOWN
Изображает максимальные, минимальные значения, значения открытия и закрытия. Также содержит линии и маркеры. Примеры: "High Low Charts".

WHISKERSCHART
Изображает ящичковую диаграмму на вертикальной оси.

BITMAPCHART
Изображает диаграмму разброса на фоновом рисунке. Пример:   "Bitmap Charts".

EARTHCHART
Изображает точки долготы и широты на фоне изображения карты Земли. Примеры:   "EarthCharts", "Earthquakes," and "EarthChart and KML Export".

COLORINGBOOK
Рисует цвета на фоне маски цвета. Для указания соответствия строк базы данных слоям нужно использовать LAYERS. Для присвоения цветов слоям, нужно использовать COLOR OVERRIDE. Выражение TRANSLUCENCE описывает сколько слоев показываются. Пример: "More About ColoringBooks"

USCOLORINGBOOK
Раскрашивает цветами штаты США. Пример: Coloring the US States

PIECHART
Секторная диаграмма. Примеры:   "Pies" and "Entrance Colors".

RADARCHART
Пример: Radar Charts

Используя Java® возможно добавить новые типы диаграмм в систему. Свяжитесь с нами для уточнения деталей.

Series Types

Типы рядов данных в PLOT должны совпадать один к одному с количеством столбцов определенным в выражении SELECT. Ниже указаны возможные типы рядов данных.

[ALL | ONLY (n)] AXISLABELS
Рисует подписи шкалы на оси X для базовых диаграмм со шкалой времени и на jjjоси Y для RotatedBarChart. AXISLABELS без параметров сам определяет разумное количество подписей так, чтобы они были читабельны.

    ALL        all labels will be drawn, ie. no labels are skipped
    ONLY (n)   only (n) labels will be drawn 
Примеры: "
Axis Labels"

[color] [line_type] [line_width] LINE
Рисует линии. Насыщенные цвета RED, BLUE, GREEN и цвета Tango Desktop хорошо подходят для рисования линий.

[color] BAR
Рисует столбцы для значений. Светлые цвета, такие как LIGHT RED or VERY LIGHT RED хорошо смотрятся в качестве цвета столбцов и других сплошных областей диаграмм.

[color] AREA
Рисует области

[color] [marker_size] [marker_fill] marker_type [AND LINES]
Рисует маркеры или маркеры с линиями. Признаки CIRCLE, BOX, и TRIANGLE часто используются для маркеров.

[color] STEPPEDAREA
Рисует ступенчатую область. Пример:i  "Stepped Lines and Areas"

[color] [line_type] [line_width] STEPPEDLINE
Рисует ступенчатую линию. Пример: "Stepped Lines and Areas"

[color] SWATH
Определяет цвета между областями. Первое выражение SWATH определяет одну сторону области. Следующее выражение SWATH вторую сторону области. Если задано третье выражение SWATH, цветом заполняется пространство между первой и второй областью и так далее. Цвет первой области игнорируется. Затем применяются атрибуты цвета. Пример: "Color a SWATH"

VECTOR
Длина векторов в DateTimeDirChart. Пример:
"Plotting Wind Direction and Speed" Radar Charts

[color] DIRECTION
Направление векторов в DateTimeDirChart в градусах 0-360. Пример:   "Plotting Wind Direction and Speed" Radar Charts

[color] HIGH
Верхние ряды в HighLowChart.

[color] LOW
Нижние ряды в HighLowChart.

[color] OPEN
Открытые ряды в HighLowChart.

[color] CLOSE
Закрытые ряды в HighLowChart.

SKIP
Пропускает столбец данных, то есть ничего не рисует.

PIELABEL
Размещает подписи на частях круговой диаграмы.

PIEVALUE
Изображает части круговой диаграммы.

DATALABELS [ABOVE | BELOW | LEFT | RIGHT | CENTERED]
Помещает подписи около точек на диаграмме. Также можно задать выравнивание подписей.

[color] [line_type] WHENLINES
Рисует помеченные вертикальные линии на LineChart или диаграммах - наследниках этого типа. Линии рисуются для NOT NULL значений, а подписи ставятся для не пустых строк.

LAYERNAME
Устанавливает столбец LAYERNAME для ColoringBook. Используйте эту настройку для названия штатов в USColorBook.

LAYER
Устанавливает столбец, содержащий названия слоев в ColoringBook или USColoringBook.

COLOR OVERRIDE
Переопределение цвета изменяет цвет точек, отображающих NOT NULL элементы данных. Нужно использовать названия цветов: "RED", "BLUE" и т.п. Пример:"Legends".

SIZE OVERRIDE
Выражение изменяет размер маркеров, изображаемых на точках данных с NOT NULL значениями в столбце. Пост блога "Bubble Charts" содержит пример переопределения размера.

EXPLODE

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

Прочие выражения

Настройки диаграммы могут включать параметры, отличные от базовых типов рядов. Эти настройки должны предваряться ключевым словом WITH.

SCALE [(axis)] {(min) (max) (incr) | LOG | LOG10 }
Устанавливает шкалу оси X, X2, Y или Y2. Когда ось не указана, настройка применяется к оси Y в вертикальной диаграмме или оси X в повернутой диаграмме. Шкала может быть задана, используя минимальное и максимальное значения, признак инкрементальной или логарифмической шкалы. Возможно использовать натуральную или десятичную логарифмическую шкалу.

ZEROBASED
При применении этого выражения нулевые значения будут включены в шкалы осей.

[NO] CLIP
Включает/выключает обрезание. Если обрезание включено, ничего не будет выводиться за пределами рамки диаграммы.


TITLE [LEFT | RIGHT | CENTER] "string"
Вставляет строку "string" в качестве заголовка вверху диаграммы. Возможно любое количество строк. Если не указано выравнивание (LEFT, RIGHT или CENTER), по умолчанию надпись размещается по центру.

TITLE (axis) "string"
Использует строку "string" в качестве заголовка оси X, X2, Y, или Y2.

NOTE [LEFT | RIGHT | CENTER] "string"
Вставляет строку "string" в качестве примечания внизу диаграммы. Возможно любое количество примечаний. Если не указано выравнивание (LEFT, RIGHT или CENTER), по умолчанию надпись размещается по центру.

COMMENT [LEFT | RIGHT | CENTER] "string"
Вставляет строку "string" в качестве комментария в диаграмме. Возможно любое количество комментариев. Если не указано выравнивание (LEFT, RIGHT или CENTER), по умолчанию надпись размещается по центру.

FORMAT (axis) {AUTO | PLAIN | SCIENTIFIC | DECIMAL "(decimal format)" ] | "(datetime format)"
Определяет формат меток на осях: X, X2, Y, или Y2.

  AUTO определяет формат автоматически.
  PLAIN использует метки формата integer
  SCIENTIFIC использует научную нотацию
  DECIMAL использует протокол Java DecimalFormat для числовых осей  

    В строке (decimal format):
       0 - цифра
       # - цифра с исключением trailing zeros
       . - разделитель дробной части с учетом региональных настроек системы
       , - разделитель тысяч

       Числовые форматы могут содержать символы Unicode, например, 
       \u00B0 для вставки символа "градус".

	Символ % включает умножение на 100. Чтобы этого избежать, необходимо 
	заключить его в одиночные кавычки: FORMAT Y DECIMAL "##.0'%'" 

  Можно использовать следующие шаблоны для DateYChart, TimeYChart, DateTimeYChart, или DateTimeDirChart:
          %Y - четырехзначный год
          %y - двухзначный год
          %m - месяц (00-12)
          %b - аббревиатура месяца (Jan-Dec)
          %d - день месяца (00-31)
          %H - часы 00-23
          %i - минуты 00-59
          %S - секунды 00-59
          %s - секунды 00-59

LABELANGLE {0 | 90}
Определяет наклон меток оси X на диаграммах DateYChart, TimeYChart, или DateTimeYChart.

[color] [line_type] [HORIZONTAL | VERTICAL] GRIDLINES
Включает линии сетки. Когда ни один из параметров HORIZONTAL или VERTICAL не задан, оба типа линий будут включены. Цвет и стиль линий также могут быть установлены.

FONT font_family font_style font_size
Задает шрифт, используемый в диаграмме. Доступные шрифты зависят от операционной сиситемы, но типы "sans serif", "serif", и "monospaced" всегда доступны. Параметр font_style может быть PLAIN, BOLD, или ITALIC. Размер шрифта задается в пунктах

TITLEFONT font_family font_style font_size
Задает шрифт заголовков. Если шрифт заголовков не задан, используется значение, заданное выражением FONT.

FOREGROUND color
Задает цвет элементов диаграммы

BACKGROUND color
Задает цвет фона.

FRAMECOLOR color
Задает цвет линий краев диаграммы. Если не задано, то линии рамки рисуются цветом фона.

[NO] SIDES
Включает/выключает линии краев диаграммы.

[NO] COLLAR
Включает/выключает отступ по краям.

[NO] YAXIS
Включает/выключает ось Y. По умолчанию включено.

[NO] XAXIS
Включает/выключает ось X. По умолчанию включено.

[NO] X2AXIS
Включает/выключает ось X2. По умолчанию включено

[NO] Y2AXIS
Включает/выключает ось Y2. По умолчанию включено.

[NO] LABELS (axis) [ON {TOP | BOTTOM | LEFT | RIGHT}]
Изменяет видимость и расположение подписей оси.

[NO] TICKS (axis) [ON {TOP | BOTTOM | LEFT | RIGHT}]
Изменяет видимость и расположение меток оси.

[NO] AXISLINE (axis)
Изменяет видимость оси.

[NO] LEGEND [RIGHT | BOTTOM | AT (page x) (page y)\
Изменяет видимость и расположение легенды. Примеры: "
Legends".

[color] LEGENDITEM
Это выражение дает возможность добавить данные в легенду, что полезно, когда используется COLOR OVERRIDES. Пример: "
Legends".

NO BITMAP | BITMAP "(PNG file name)"
В типе BitmapChart NO BITMAP приведет к тому, что фоновое изображение не будет нарисовано. Это может быть полезно, когда нужно переключаться между фоновым изображением и черным фоном с сохранением масштаба.

PAGEBITMAP "(PNG file name)"
Указывает на PNG файл, используемый в качестве фона страницы.

FRAME {TO FIT | INSETS left right top bottom | left_x top_y right_x bottom_y}
По умолчанию используется FRAME TO FIT, то есть Entrance размещает данные в фрейм автоматически. FRAME также можно использовать для ограничения размера внутри текущей страницы. Используйте FRAME и PAGE вместе, чтобы создавать
sparklines.

PAGE 0 0 right_x bottom_y
Устанавливает ширину и высоту страницы (Изменить положение левого угла невозможно, для этого нужно использовать фреймы). Выражением PAGE можно пользоваться для разработки графики ограниченного размера, например, для мобильных устройств.:w

BARWIDTH (integer 0 - 100)
Устанавливает ширину столбцов в процентах от доступного пространства. Пример: "
Bar Charts" for examples.

BARSEPARATION (integer)
Устанавливает разделение между столбцами в единицах измерения устройства. Пример: "
Bar Charts" for examples.

BAROVERLAP (0 or 1)
Указывает, будут ли пересекаться столбцы: 0 - не пересекаются, 1 пересекаются. Пример: "
Bar Charts" for examples.

SKINNY
Отображает второй набор столбцов в 1/3 ширины основных столбцов. Используйте SKINNY с BAROVERLAP 1. Пример: "
Comparing Today to Yesterday"

MARKER (marker)
Устанавливает маркер по умолчанию.

PALETTE [TRANSPARENT] {"Tango" | "Bright" | "Light" | "Very Light" | "Blue Shades" | "Red Shades" | "Gray Shades"}
Устарело.

THROUGHNULLS
По умолчанию сегменты линий прерываются на значениях NULL. Использование THROUGHNULLS проводит к тому, что линиями соединяются соседние значения, отличные от NULL.

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

PAGENAME "(name)"
Задает имя, которое отображается на внешней закладке.

TRANSLUCENCE (integer 0-255)
Задает прозрачность слоев в ColoringBook

LAYERS "(path to directory)"]
Указывает путь к папке, содержащей изображения слоев в ColoringBook. Подробная информация и пример: "
More About Coloring Books"

VERSION "(version string)"]
Указывает версию PLOT, требуемую для запуска скрипта.

Цвета

Поддерживаются основные цвета Tango Desktop Palette:
    RED  GREEN  BLUE  YELLOW  CYAN  MAGENTA  WHITE  LIGHTGRAY  
    GRAY DARKGRAY  BLACK BUTTER  ORANGE  CHOCOLATE  CHAMELEON 
    SKYBLUE  PLUM  SCARLETRED  ALUMINUM  CHARCOAL   
Любой цвет может быть VERY LIGHT, LIGHT, DARK, или VERY DARK. А также TRANSPARENT или VERY TRANSPARENT. Чтобы указать цвет в формате RGB + альфа значение, нужно воспользоваться выражением RGB(r,g,b,a). Примеры цветов:  "
Entrance Colors".

Стили линий

Возможны следующие стили линий:
   DOTTED  DASHED  SOLID

Толщина линий

Возможны следующие толщины линий
   THIN  NORMAL  THICK, VERY THICK

Формы маркеров

Возможных следующие формы маркеров:

 BOX                   DIAMOND
 CIRCLE                HORTICK 
 TRIANGLE              VERTICK
 OTHERTRIANGLE         XSYMBOL 
 PLUS 

Размер маркера

Маркер может быть одного из следующих размеров:
 TINY             BIG
 SMALL            VERY BIG
 VERY SMALL       BARSIZE
Используйте BARSIZE чтобы ширина HORTICKS совпадала с шириной столбцов в столбчатой диаграмме. Укажите размер с помощью столбца SIZE OVERRIDE, когда необходимо иметь другие размеры или нужно чтобы размеры изменялись. Размер задается в пикселях.

Заполнение маркера

Маркеры могут быть:
   FILLED 
   UNFILLED 
   MASKED 

Связанные ссылки

http://dbentrance.com/docs/plotsyntax.html - данный документ
http://dbentrance.com/blog/ содержит различные советы по использованию