PLOT 構文

概要

PLOTは、Entranceに実装されたグラフを描くための拡張SQLです。 PLOTを含むスクリプトはEntranceデスクトップアプリケーションから、またはコマンドライン上で、 EntranceServletから、あるいは他のアプリケーションに組み込んで実行することができます。

簡単な例

PLOTコマンドはふたつの部分で構成されます。ひとつはチャート設定部、もうひとつはSELECT部です。 以下に簡単なスクリプト例とその出力を示します。
PLOT
  AXISLABELS, ORANGE LINE
SELECT
  year, avg FROM cpi_annual;
全てのSQL SELECTステートメントは機能します。 ここで重要な点は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 | ON (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 marker_type]

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

         [THROUGHNULLS]

         [PAGENAME "(name)"]

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

         SEND [TO] [DELETE IF EXISTS] { filename | TEMPORARY}
        
  SELECT 
         (SQL SELCT文 本体);

チャートタイプ

グラフの種別を指定します。デフォルトではPLOTは線、棒、領域、マーカーなどで構成する線グラフを描画します。 もちろんそれ以外のグラフも指定できます。 たとえば下記のような散布図をSCATERを指定して描くことができます。
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
これは線、マーカー、バー及び領域を描く最も基本的なチャートです。SwathグラフやWhenline表示もできます。例:
Lines and Markers.

BARCHART, HISTOGRAM, AREACHART
これらは線グラフの拡張であり線グラフと異なるデフォルトが用意されています。棒グラフの事例: "Charting Counts with SQL and Entrance

ROTATEDBARCHART
水平棒グラフの例は次のブログの記事にあります。: Rotated Bars

STACKEDBARCHART
積み上げ棒グラフの例: Stacked Bars

SCATTER (or XYCHART)
マーカーまたは線によりXYデータをプロットします。第2 X軸またはY軸を持つ散布図の例: "Add a Second X or Y Axis".

TIMEYCHART, DATEYCHART, DATETIMEYCHART, DATETIMEDIRCHART
これらのグラフは(時間, Y)、(日, y) または (日時, y)の形式のデータを散布図として描画します。例: "DATETIME-Y Charts" バージョン1.5以降ではベクトルデータをプロットできる日時-方向グラフが利用できます。次の例を参照してください。Plotting Wind Direction and Speed

CORRELATION
対となる一連のデータを散布図として描画します。例:"Correlation Charts".

HIGHLOWCHART, CANDLESTICK, BURNDOWN
高値、低値、始値、終値などを描画します。線やマーカーを表示することもできます。例:High Low Charts

WHISKERSCHART
垂直軸に箱ひげを表示します。

BITMAPCHART
背景イメージ上に散布図を描きます。例: Bitmap Charts

EARTHCHART
地球の画像上に緯度経度によるポイントをプロットします。例: "EarthCharts", "Earthquakes," and "EarthChart および KML Export"

COLORINGBOOK
マスクレイヤーの形に従い着色します。LAYERSで指定される一連の値をデータベースのカラムの文字列と塗り絵機能で使用するビットマップ・レイヤーの関連付けに用います。TRANSLUCENCEは、個々のレイヤーが互いにどの程度の透過性を持つかを規定します。例:"More About ColoringBooks"

USCOLORINGBOOK
例えば、古典的なな赤州、青州の区分のように米国の各州を塗りつぶします。例:Coloring the US States for an example.

PIECHART
円グラフを描きます。例: "Pies" およびPies" and "Entrance Colors

RADARCHART
Radar Charts Javaを用い、システムを他のグラフの描画ができるように拡張することが可能です。詳細についてはお問い合わせください。

シリーズタイプ

PLOT句においてシリーズタイプはSELECT句の参照結果の各列と1対1で対応しなければなりません。以下に使用可能なシリーズタイプを紹介します。

[ALL | ONLY (n)] AXISLABELS
基本的な時系列グラフではX軸のラベルを、水平棒グラフではY軸のラベルを描画します。指定がない場合、AXISLABELSは適当に間を抜いて描かれるラベルの間隔を調整します。

    ALL        とばすことなく全てのラベルを描画します。
    ONLY (n)   (n)の数のラベルだけを描きます。
例: "
Axis Labels" 。

[color] [line_type] [line_width] LINE
線を描きます。RED, BLUE, GREENなどの純色やTangoデスクトップカラーが適しています。

[color] BAR
カラムの値に対応するバーを描画します。LIGHT RED や VERY LIGHT REDなど明るい色がバーや他の塗りつぶされるシリーズタイプでは有効です。

[color] AREA
領域を描画します。

[color] [marker_size] [marker_fill] marker_type [AND LINES]
マーカーまたはマーカーと線を描きます。CIRCLE, BOX, や TRIANGLEがよく使われるマーカーです。

[color] STEPPEDAREA
階段状の領域を描画します。例:Stepped Lines and Areas

[color] [line_type] [line_width] STEPPEDLINE
階段状の線を描画します。例:Stepped Lines and Areas

[color] SWATH
線の間の領域を塗りつぶします。最初の SWATH は領域の一方の辺を、次の SWATH は2番目の辺を決定します。3番目の SWATH が指定されている場合はこれと2番目の辺の間が指定色で塗りつぶされ、以下、同様の処理が繰り返されます。最初の SWATH の色は無視され、2番目移行の色属性が適用されます。例:Color a SWATH

LENGTH
日時-方向グラフのベクトルの長さを指定します。例
"Plotting Wind Direction and Spped"

[color] DIRECTION
日時-方向グラフのベクトルの方向を0-360(度)で指定します。例: "Plotting Wind Direction and Spped"

[color] HIGH
ハイローチャートの高値を指定します

[color] LOW
ハイローチャートの低値を指定します。

[color] OPEN
ハイローチャートの始値を指定します。

[color] CLOSE
ハイローチャートの終値を指定します。

SKIP
カラムをスキップ(何も描かない)します。

PIELABEL
円グラフの各部のラベルを描きます。

PIEVALUE
円グラフの各部を描きます。

DATALABELS [ABOVE | BELOW | LEFT | RIGHT | CENTERED]
グラフの各ポイントのラベルを描きます。ラベルの位置を指定できます。

[color] [line_type] WHENLINES
線グラフまたは線グラフから派生するグラフにラベル付きの垂直線(Whenline)を描きます。垂直線はその値が空でない時に、ラベルも該当カラムが空の文字列でない時に描画されます。

LAYERNAME
塗り絵機能(ColoringBook)のレイヤー名を設定します。米国白地図(USColoringBook)の州の名前の指定に使用します。

LAYER
塗り絵機能(ColoringBook)または米国白地図(USColoringBook)のレイヤー名を含むカラムを指定します。

COLOR OVERRIDE
対応するカラムが空でないデータポイントの表示色を変更します。カラムでは"RED"や"BLUE"などの色名を使用します。 &nbps; 例:Legends

SIZE OVERRIDE
対応するカラムが空でないデータポイントのマーカーの大きさを変更します。ブログ記事Bubble Charts で使用法を説明しています。 円グラフで各扇形部が中心からオフセットする割合を0-100の値で指定します。空の場合はオフセット無しとなります.

EXPLODE

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

その他のキーワード

チャートの設定は基本的なシリーズタイプ以外でも指定できます。WITH の後に指定します。

SCALE [(axis)] {(min) (max) (incr) | LOG | LOG10 }
X, X2, Y または Y2軸のスケールを指定します。軸が指定されない場合は、縦方向のグラフの場合 Y となり、 回転されたグラフの場合 X となります。スケールは最低、最大、増分または対数で指定できます。LOGは自然対数、LOG10は底を10とする常用対数です。

ZEROBASED
グラフの目盛にゼロを描くことを指定します。

[NO] CLIP
クリッピングのオン、オフを指定します。クリッピングをオンにするとグラフの枠外には何も描画されません。

TITLE [LEFT | RIGHT | CENTER] "string"
グラフ上の表題を文字列で指定します。表題はいくつでも指定できます。LEFT, RIGHT または CENTER の配置が指定されない場合は、表題はCENTERで描画されます。

TITLE (axis) "string"
X, X2, Y, また Y2軸の表題を文字列で指定します。

NOTE [LEFT | RIGHT | CENTER] "string"
グラフ下の注記を文字列で指定します。注記はいくつでも指定できます。LEFT, RIGHT または CENTER の配置が指定されない場合は、注記はCENTERで描画されます。

COMMENT [LEFT | RIGHT | CENTER] "string"
グラフ中のコメントを文字列で指定します。コメントはいくつでも指定できます。LEFT, RIGHT または CENTERの配置が指定されない場合は、コメントはCENTERで描画されます。

FORMAT (axis) {AUTO | PLAIN | SCIENTIFIC | DECIMAL "(decimal format)" ] | "(datetime format)"
X, X2, Y, また Y2軸のラベルの書式を文字列で指定します。

  AUTO   自動的に書式を決定します
  PLAIN   整数のラベルを使用します

  SCIENTIFIC    科学的な記法を用います
  DECIMAL    数値軸にはJavaの10進数書式の指定方法を使用します

    In a (decimal format) string:
       0  数値桁
       #  数値桁(トレーリングゼロなし)
       .  10進またはロケールの通貨のセパレータ
       ,  グルーピングのセパレータ

       10進数書式はUnicode文字を含むことができます。
        (例)¥u00B0は度数の文字

       パーセント文字%は100倍を乗ずることになります。これを防ぐには引用符で
       例のようにくくります。:FORMAT Y DECIMAL "##.0'%'"



  時間-Yグラフ、日-Yグラフ、日時-Yグラフ、日時-方向グラフでは
       下記の書式指定文字列が使用できます。:
          %Y   - 年 (4桁)
          %y   - 年 (2桁)
          %m   - 月 (00-12)
          %b   - 月名略称 (Jan-Dec)
          %d   - 日付(00-31)
          %H - 時間 00-23
          %i - 分   00-59
          %S - 秒   00-59
          %s - 秒   00-59

LABELANGLE {0 | 90}
時間-Yグラフ、日-Yグラフ及び日時-YグラフのX軸ラベルの傾きを指定します。

[color] [line_type] [HORIZONTAL | VERTICAL] GRIDLINES
グリッドラインをオンにします。HORIZONTAL も VERTICAL も指定されない場合には両方がオンになります。グリッドラインの色や線種も指定できます。

FONT font_family font_style font_size
グラフ中のテキストに使用されるフォントを設定します。 利用可能なフォントファミリーはOSに依存します。ただし、"sans serif"、 "serif"及び "monospaced" はいつでも使えます。フォントスタイルはPLAIN、 BOLD または ITALICが指定できます。フォントのサイズはポイントで指定します。

TITLEFONT font_family font_style font_size
表題に使用するフォントを指定します。TITLEFONT が指定されていない場合は FONT で指定されているフォントが用いられます。

FOREGROUND color
ラフの前景要素の色を設定します。

BACKGROUND color
背景色を設定します。

FRAMECOLOR color
フレームの色を設定します。FRAMECOLORが指定されていない場合は背景色がフレームカラーとなります。

[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 | ON (page x) (page y)\
凡例のオン、オフを指定します。凡例をグラフの右か、下か、あるいは (x,y)で指定した場所に置くかを指定できます。 例: "Legends"
Legends

[color] LEGENDITEM
このキーワードはCOLOR OVERRIDESを使用したときに判例を追加する手段を提供します。例:
Legends

NO BITMAP | BITMAP "(PNG file name)"
ビットマップグラフで"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を使ってください。

BARWIDTH (integer 0 - 100)
バーの幅を使用可能なスペースに対する比率(%)で指定します。例:
Bar Charts" for examples.

BARSEPARATION (integer)
バーの間隔をデバイスユニットで指定します。&nbps;例:
Bar Charts" for examples.

BAROVERLAP (0 or 1)
バーの重複を許すかどうかを指定します。「0 は重複しない、1 は重複する」となります。 例
Bar Charts

SKINNY
2番目のバーをカレントのバー幅の1/3で描画します。BAROVERLAP 1 として 使用します。例:
Comparing Today to Yesterday で使用方法を説明しています。

MARKER (marker)
デフォルトのマーカーを設定します。

PALETTE [TRANSPARENT] {"Tango" | "Bright" | "Light" | "Very Light" | "Blue Shades" | "Red Shades" | "Gray Shades"}
カレントのパレットを設定します。(非推奨の機能です。)

THROUGHNULLS
デフォルトではラインの描画はナル値で終了します。THROUGHNULLSを指定するとラインをナル値の前後の有効値を使って描画します。

OTHERSLICE "(label)" (amount) (color)
円グラフに新しい部分を追加し、円グラフの総計も増加させます。

PAGENAME "(name)"
出力するタブに表示される名前を設定します。

TRANSLUCENCE (integer 0-255)
塗り絵帳(ColoringBook)のレイヤーの透光度を設定します。

LAYERS "(path to directory)"]
塗り絵帳(ColoringBook)のイメージレイヤーを含むディレクトリーへのパスを設定します。 例を参照してください。:
More About Coloring Books

VERSION "(version string)"]
スクリプトが必要とするPLOTのバージョンを設定します。

Colors

「通常の」 色と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) を、アルファ値を指定するときは 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
HORTICKS の幅を棒グラフの棒幅に合わせたいときは BARSIZE を使用します。異なるサイズ、あるいは変化するサイズを指定したいときは SIZE OVERRIDE を使ってサイズを指定します。サイズはピクセルで指定します。

マーカーの塗りつぶし

マーカーの塗りつぶしの種類は下記の通りです:
   FILLED 
   UNFILLED 
   MASKED 

関連するURL

http://dbentrance.com/blog/ にはティップスやテクニックが紹介されています。