ChartAxis (クラス)
public abstract ChartAxis {inherits ShapeGroup}
パッケージ: CURL.GUI.CHARTS
直接継承しているサブクラス: NumericAxis-of, DataSeriesAxis, DefaultChartAxis, DefaultBarChartAxis

LayeredChart 内の軸を表す抽象クラス。

説明

ChartAxis オブジェクトは、LayeredChart のプロット エリアが測定される方法を定義します。これにより、データと空間座標の間の双方向マッピングが提供されます。このマッピングは、ChartAxis.get-position および ChartAxis.get-value で実装されます。ただし、ChartDataMappingChartInverseDataMapping から ChartLayer.get-data-mappingChartLayer.get-inverse-data-mapping それぞれを使用する場合がより多くあります。これらのオブジェクトは、基本的に軸マッチング ロジックと ChartAxis.get-position および ChartAxis.get-value の呼び出しをラップします。
ChartAxis は、ユーザー サブクラス化が可能となるように設計されていますが、一般的に、軸の動作をカスタマイズするのにより簡単な方法があります。ChartAxis 用または ChartAxis クラスのある種のサブセット用に、次のオプションがサポートされています。
ChartAxis の提供された実装は次のとおりです。
既定の ChartAxis ファクトリーを使用して、1 つ以上の ChartDataSeries に適切なタイプの軸を作成することができます。詳細については、ChartAxis.default#factory を参照してください。
ラベル生成および間隔に関する一部の機能は、ChartAxis.label-group にデリゲートされます。ラベルの生成および位置決めの変更方法については、ChartLabelGroup を参照してください。

注意事項

LayeredChart は、ChartLayer.x-axis-data および ChartLayer.y-axis-data に基づいて、その内容に適切な X 軸と Y 軸を自動的に作成します。しかし、場合によっては、独自の軸オブジェクトを直接作成できます。自動軸生成プロセスの詳細については、LayeredChart を参照してください。
ChartAxisShape 階層は次のとおりです。
このオブジェクトは、"ChartAxis"のスタイル ルールを記述することによってスタイル化することが出来ます。

コンストラクタ
default:新しい ChartAxis クラスを初期化します。
コンストラクタ protected {ChartAxis.default
label-group:ChartLabelGroup = {ChartLabelGroup},
axis-group:Shape = {ShapeGroup},
axis-line-group:Shape = {ShapeGroup},
major-tick-group:Shape = {ShapeGroup},
minor-tick-group:Shape = {ShapeGroup},
...
}
default:ChartAxis を 1 つ以上の ChartDataSeries に基づいて作成します。
ファクトリ public {ChartAxis.default data:ChartDataSeries, ...}:ChartAxis

プロパティ
axis-group:軸と目盛り ShapeShape 親。
フィールド public constant ChartAxis.axis-group:Shape
axis-label:この ChartAxis のラベルまたはラベル ファクトリ。
非ローカル オプション public ChartAxis.axis-label:any
axis-line-group:軸線 ShapeShape 親。
フィールド public constant ChartAxis.axis-line-group:Shape
chart:この ChartAxis を含む LayeredChart (ある場合)。
フィールド public-get private-set ChartAxis.chart:#LayeredChart
label-group:この軸に関連したラベルを含み、位置付ける ChartLabelGroup
フィールド public constant ChartAxis.label-group:ChartLabelGroup
length:この軸の長さ。
フィールド public-get private-set ChartAxis.length:Distance
major-tick-factory:この ChartAxis 内の目盛り生成のためのファクトリ プロシージャ。
非ローカル オプション public ChartAxis.major-tick-factory:#TickFactory
major-tick-group:この軸の主目盛り ShapeShape 親。
フィールド public constant ChartAxis.major-tick-group:Shape
minor-tick-factory:この ChartAxis 内の目盛り生成のためのファクトリ プロシージャ。
非ローカル オプション public ChartAxis.minor-tick-factory:#TickFactory
minor-tick-group:この軸の補助目盛り ShapeShape 親。
フィールド public constant ChartAxis.minor-tick-group:Shape
position:AxisPosition で定義された LayeredChart 内のこの軸の位置。
フィールド public-get private-set ChartAxis.position:AxisPosition =AxisPosition.none
style-element:スタイリングの目的のための、この Visual の "要素" や "型" です。
アクセサ public ChartAxis.style-element:String
tick-label-factory:この ChartAxis 内の目盛りラベル生成のためのファクトリ プロシージャ。
非ローカル オプション public ChartAxis.tick-label-factory:TickLabelFactory
x-axis?:この軸が現在 LayeredChart 内の X 軸として使用されている場合は true
アクセサ public final ChartAxis.x-axis?:bool
y-axis?:この軸が現在 LayeredChart 内の Y 軸として使用されている場合は true
アクセサ public final ChartAxis.y-axis?:bool
プロパティ 継承 ShapeGroup: clonable-class?
プロパティ 継承 Shape: as-Shape, border-color, color, draw-operation, graphical-parent, option-parent, possibly-displayed?, selection-context, shape-parent, shape-selectable, stroke-thickness, transformation, visible?
プロパティ 継承 ShapeContainerBase: as-ShapeRoot, shape-children
プロパティ 継承 Visual: _style-element, completely-clonable-children?, cursor, data-source, display-context, dragee, font-size, has-key-focus?, input-method-enabled?, input-method-keyboard-mode, name, options, style-class, style-manager, style-options, test-child?, test-description, test-name, test-parent?, test-type-name, test-visible?, tooltip, user-data, visual-parent
プロパティ 継承 DataBindingTarget: data-binding-context, data-bindings
プロパティ 継承 EventTarget: event-handlers
プロパティ 継承 OptionListInterface: option-register-proc, options-present-here, registered-option-keys

メソッド
clear-shapes:この軸の Shape 内容をクリアします。
public {ChartAxis.clear-shapes}:void
detach:この形状を親から切り離します。
public {ChartAxis.detach}:void
generate-axis-label:この ChartAxis に適切な軸ラベルを生成します。
public abstract {ChartAxis.generate-axis-label}:#Shape
generate-axis-line:この軸の軸線を表すのに必要な Shape を生成します。
protected {ChartAxis.generate-axis-line}:void
generate-major-tick:主目盛りを表す Shape を生成します。
public {ChartAxis.generate-major-tick
value:any,
tick-index:int,
position:Distance = {self.get-position value}
}:Shape
generate-major-ticks:この軸に沿った主目盛りを表すのに必要なすべての Shape を生成します。
protected abstract {ChartAxis.generate-major-ticks}:void
generate-minor-tick:補助目盛りを表す Shape を生成します。
public {ChartAxis.generate-minor-tick
value:any,
tick-index:int,
position:Distance = {self.get-position value}
}:Shape
generate-minor-ticks:この軸に沿った補助目盛りを表すのに必要なすべての Shape を生成します。
protected abstract {ChartAxis.generate-minor-ticks}:void
generate-tick-label:指定の目盛りの目盛りラベルを生成します。
public {ChartAxis.generate-tick-label
tick:ChartTick,
tick-rotation:Angle
}:#Shape
get-axis-label:この軸のラベルとして使用するのに適切な Shape を作成します。
public final {ChartAxis.get-axis-label}:#Shape
get-data-type:ChartAxis の定義方法を記述します。
public abstract {ChartAxis.get-data-type
}:(type:AxisDataType, value:any)
get-major-ticks-Iterator:この軸で目盛りを繰り返すのに役立つ Iterator-of を返します。
public {ChartAxis.get-major-ticks-Iterator}:{Iterator-of ChartTick}
get-minor-ticks-Iterator:この軸で目盛りを繰り返すのに役立つ Iterator-of を返します。
public {ChartAxis.get-minor-ticks-Iterator}:{Iterator-of ChartTick}
get-position:データ値に対応する空間位置を計算します。
public {ChartAxis.get-position value:any}:Distance
get-position-at-zero:この軸に沿ったゼロに対応する空間位置を取得します。
public abstract {ChartAxis.get-position-at-zero}:Distance
get-relative-position:データ値に対応する空間位置を計算します。
public abstract {ChartAxis.get-relative-position value:any}:Fraction
get-tick-label:目盛りのラベルとして使用するのに適切な Shape を作成します。
public final {ChartAxis.get-tick-label
tick:ChartTick,
tick-rotation:Angle
}:#Shape
get-tick-label-alignment:目盛りラベルの既定の配置を取得します。
public {ChartAxis.get-tick-label-alignment
rotation:Angle
}:(halign:String, valign:String)
get-value:この軸に沿った位置に対応するデータ値を計算します。
public {ChartAxis.get-value position:Distance}:any
get-value-relative:この軸に沿った位置に対応するデータ値を計算します。
public abstract {ChartAxis.get-value-relative position:Fraction}:any
note-min-max-computation-changed:LayeredChart.compute-data-min-max によって返される値に影響を与える要素において、変更があったことをこの ChartAxis に通知します。
public {ChartAxis.note-min-max-computation-changed}:void
regenerate-shapes:この軸を表すのに必要なすべての Shape オブジェクトを作成します。
public {ChartAxis.regenerate-shapes}:void
transform-from-chart:LayeredChart の座標系のポイントをこの ChartAxis のポイントに変換します。
public {ChartAxis.transform-from-chart point:Distance2d}:Distance2d
transform-to-chart:この ChartAxis のローカル座標系のポイントを組み込み側 LayeredChart のポイントに変換します。
public {ChartAxis.transform-to-chart point:Distance2d}:Distance2d
update-layout:軸に必要なすべてのレイアウト操作を実行します。
public {ChartAxis.update-layout length:Distance}:void
メソッド 継承 ShapeGroup: clone-appearance-helper, draw, get-own-bounds, get-own-bounds-in-shape-root, self-contains-point?, self-intersects-polygon?
メソッド 継承 Shape: apply-rotation, apply-scale, apply-transformation, apply-translation, apply-translation-in-parent, constrain-own-layout-bounds, constrain-shape-layout-bounds, contains-point?, find-graphical-ancestor, fire-crossing-event, fire-in-child, get-display-context, get-down-orientation-in-shape-parent, get-graphical-root, get-gui-path, get-gui-path-to-child, get-local-device-pixel-size, get-origin-in-graphical-ancestor, get-origin-in-root, get-origin-in-shape-parent, get-origin-in-shape-root, get-own-layout-bounds, get-right-orientation-in-shape-parent, get-shape-bounds, get-shape-bounds-in-shape-root, get-shape-layout-bounds, get-top-left-in-ancestor, get-transformation-to-shape-root, keyword-init-arg, option-change-notify, overdraw-for-selection, quantize-line-thickness, request-draw, request-draw-self, reset-transformation, set-rotation, set-scale, set-transformation, set-translation-in-parent, to-Graphic, transform-from-display-coordinates, transform-from-graphical-root-coordinates, transform-point-from-shape-root, transform-point-to-shape-root, transform-to-display-coordinates, transform-to-graphical-root-coordinates, transform-vector-from-shape-root, transform-vector-to-shape-root, transformation-changed, transformation-changing
メソッド 継承 ShapeContainerBase: add, clear, clone-children, draw-shape-child, draw-shape-children, get-all-children-at-point, get-child-at-point, get-leaf-at-point, get-shape-root, note-attached, note-detaching, notify-option-children, on-drag-enter, on-pointer-enter, on-pointer-envelope-event, register-options, remove, set-shape-index, set-shape-index-after, set-shape-index-before, shape-container-fire-inferior-crossing-event, shape-container-handle-crossing, shape-container-pick-child, shape-container-pointer-enter-occurred, shape-container-pointer-leave-occurred
メソッド 継承 Visual: add-from-init-args, animate, change-cursor, clonable-appearance?, clone-appearance, find-test-children, get-focus-manager, get-layout-context, get-test-parent, get-test-property, get-text, get-view, maybe-fire-attach-event, maybe-fire-detach-event, non-keyword-init-arg, note-caret-position, on-drag-leave, on-pointer-leave, pop-cursor, prepare-test-object, prepare-test-parent, push-cursor, quantize-width, refresh-style-options, release-key-focus, request-key-focus, scroll-to-include, test-record, test-run, xy-offset-to
メソッド 継承 GraphicOptions: any-to-Distance
メソッド 継承 GuiEventTarget: handle-delegate-event, handle-event, on-action, on-cancel-mode, on-command-changed, on-commit, on-composition-change-event, on-composition-result-event, on-context-menu-event, on-current-record-change-request, on-current-record-changed, on-destroy-notify, on-destroy-requested, on-drag-over, on-drag-pointer, on-drag-started, on-drop, on-end-composition-event, on-focus-event, on-focus-in, on-focus-out, on-gesture, on-gesture-begin, on-gesture-end, on-gesture-magnify, on-gesture-pan, on-gesture-rotate, on-gesture-swipe, on-gesture-tap, on-gesture-touch, on-grab-release, on-gui-event, on-input-method-event, on-inspection, on-key-event, on-key-press, on-pointer-button, on-pointer-crossing, on-pointer-event, on-pointer-motion, on-pointer-press, on-pointer-release, on-pointer-scroll, on-raw-key-event, on-raw-key-press, on-raw-key-release, on-reset, on-selectable-added, on-selectable-removed, on-selection-changed, on-selection-context-activated, on-selection-context-deactivated, on-selection-event, on-start-composition-event, on-start-event, on-stop-event, on-view-activate, on-view-deactivate, on-window-close, remove-event-handlers-for-event-class
メソッド 継承 DataBindingTarget: add-data-binding, get-data-binding, refresh-data-binding, remove-data-binding, unset-property, update-data-binding, validate-data-binding
メソッド 継承 EventTarget: accepts-event-class?, add-event-handler, event-handler-present?, remove-event-handler, verify-event
メソッド 継承 OptionListInterface: add-option, add-style-option, change-option-parent-notify, clone-options, get-option, get-option-by-name, local-add-notify, local-remove-notify, name-to-option-key, new-option-item, option-changed, option-lookup, option-lookup-here, option-propagate-notify, option-set?, propagate-option-change, remove-option, remove-style-option, remove-styles, set-option-by-name, set-style-option-by-name, unset-option-by-name, unset-style-option-by-name
メソッド 継承 BasicEventTarget: enqueue-event
メソッド 継承 InitRestArgParser: process-rest-args
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
protected {ChartAxis.default
label-group:ChartLabelGroup = {ChartLabelGroup},
axis-group:Shape = {ShapeGroup},
axis-line-group:Shape = {ShapeGroup},
major-tick-group:Shape = {ShapeGroup},
minor-tick-group:Shape = {ShapeGroup},
...
}

新しい ChartAxis クラスを初期化します。

label-group: ChartAxis.label-group の初期値。
axis-group: ChartAxis.axis-group の初期値。
axis-line-group: ChartAxis.axis-line-group の初期値。
major-tick-group: ChartAxis.major-tick-group の初期値。
minor-tick-group: ChartAxis.minor-tick-group の初期値。
...: Shape が受け取る引数のいずれか。これらは主に、オプションの初期化を表すキーワード引数です。

説明

ChartAxis は抽象であるので、サブクラスがこのコンストラクタを呼び出すだけです。データに基づいて ChartAxis サブクラスを自動的に作成したい場合は、ChartAxis.default#factory を参照してください。


default (ファクトリ)
public {ChartAxis.default data:ChartDataSeries, ...}:ChartAxis

ChartAxis を 1 つ以上の ChartDataSeries に基づいて作成します。

data: 作成された ChartAxis に追加される最初の ChartDataSeries
...: 残余引数は、軸に追加される ChartDataSeries および作成された ChartAxis の初期化パラメータから構成される場合があります。ChartAxis.default を参照してください。

戻り値

、提供されたデータに適切な ChartAxis

説明

このファクトリーでは、data にあるデータの型を検証し、該当データ型に適切な ChartAxis のサブクラスが作成されます。作成できる型は次のとおりです。

ChartAxis.axis-group を参照してください。



プロパティ詳細
axis-group (フィールド)
public constant ChartAxis.axis-group:Shape

軸と目盛り ShapeShape 親。

説明

このオブジェクトは、便宜上必ず存在します。たとえば、これを使用して、その子のすべてに影響するオプションを設定できます。ChartAxis Shape 階層については、ChartAxis を参照してください。

次の例では、いくつかの興味深い手法を組み合わせています。既定の ChartAxis ファクトリを使用して軸を作成し、ChartAxis.axis-group の独自の ShapeGroup オブジェクトを提供します。次に LineLayer を作成します。この例では、前に作成された軸グループの色を変更するイベント ハンドラを LineLayer.series-shapes に配置します。またこの例では、ChartLayoutChanged イベントを使用して、LineLayer.series-shapes の内容が変更された時点で通知を受け取ります。
最終的な結果は、ポインタをプロットされた形状の 1 つの上で移動すると、そのプロットの Y 軸が赤でハイライトされることです。

例: ChartAxis.axis-group を使用しての軸と目盛りの色の変更
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{let left-group:ShapeGroup =
    {ShapeGroup
        color = FillPattern.black
    }
}

{let right-group:ShapeGroup =
    {ShapeGroup
        color = FillPattern.black
    }
}

{LayeredChart
    width = 15cm,
    height = 7cm,
    left-axis =
        {ChartAxis
            {ChartDataSeries sample-records, "Age"},
            axis-group = left-group
        },
    right-axis =
        {ChartAxis
            {ChartDataSeries sample-records, "Wins"},
            axis-group = right-group
        },
    {LineLayer
        sample-records,
        "Age",
        "Wins",
        x-axis-data =
            {ChartDataSeries sample-records, "Name"},
        stroke-thickness = 2pt,
        {on ChartLayoutChanged at layer:LineLayer do
            || Assume that there are two data
            || series, and that they correspond
            || to the left and right axes,
            || respectively.
            {layer.series-shapes[0].add-event-handler
                {on PointerEnter do
                    set left-group.color = FillPattern.red
                }
            }
            {layer.series-shapes[0].add-event-handler
                {on PointerLeave do
                    set left-group.color = FillPattern.black
                }
            }
            {layer.series-shapes[1].add-event-handler
                {on PointerEnter do
                    set right-group.color = FillPattern.red
                }
            }
            {layer.series-shapes[1].add-event-handler
                {on PointerLeave do
                    set right-group.color = FillPattern.black
                }
            }
        }
    }
}


axis-label (非ローカル オプション)
public ChartAxis.axis-label:any

この ChartAxis のラベルまたはラベル ファクトリ。

説明

axis-label を参照してください。


axis-line-group (フィールド)
public constant ChartAxis.axis-line-group:Shape

軸線 ShapeShape 親。

説明

このオブジェクトは、便宜上必ず存在します。たとえば、これを使用して、その子のすべてに影響するオプションを設定できます。ChartAxis Shape 階層については、ChartAxis を参照してください。

注意事項

類似オブジェクトの使用例については、ChartAxis.axis-group を参照してください。


chart (フィールド)
public-get private-set ChartAxis.chart:#LayeredChart

この ChartAxis を含む LayeredChart (ある場合)。

説明

このプロパティは、ChartAxisLayeredChart に追加されるとすぐに設定されます。


label-group (フィールド)
public constant ChartAxis.label-group:ChartLabelGroup

この軸に関連したラベルを含み、位置付ける ChartLabelGroup

説明

このオブジェクトは、この ChartAxis に関連したすべての目盛りラベルおよび軸ラベルの Shape 親です。これは、ラベル (ChartAxis.get-tick-label および ChartAxis.get-axis-label) を生成し、結果を正しい位置と方向に配置するために必要な実際の呼び出しを実行する必要があります。


length (フィールド)
public-get private-set ChartAxis.length:Distance

この軸の長さ。

説明

データ値が増えることに対応して一般的に垂直軸の桁数が減りますが、この値は常に正数です。

注意事項

この値は、ChartAxis.update-layout の呼び出しまたは LayeredChart.update-layout からの自身の呼び出しの間に更新されます。


major-tick-factory (非ローカル オプション)
public ChartAxis.major-tick-factory:#TickFactory

この ChartAxis 内の目盛り生成のためのファクトリ プロシージャ。

説明

major-tick-factory を参照してください。


major-tick-group (フィールド)
public constant ChartAxis.major-tick-group:Shape

この軸の主目盛り ShapeShape 親。

説明

このオブジェクトは、便宜上必ず存在します。たとえば、これを使用して、その子のすべてに影響するオプションを設定できます。ChartAxis Shape 階層については、ChartAxis を参照してください。

注意事項

類似オブジェクトの使用例については、ChartAxis.axis-group を参照してください。この例で axis-group の代わりにこのオブジェクトが使用されている場合は、目盛りの色だけが変更されます。


minor-tick-factory (非ローカル オプション)
public ChartAxis.minor-tick-factory:#TickFactory

この ChartAxis 内の目盛り生成のためのファクトリ プロシージャ。

説明

minor-tick-factory を参照してください。


minor-tick-group (フィールド)
public constant ChartAxis.minor-tick-group:Shape

この軸の補助目盛り ShapeShape 親。

説明

このオブジェクトは、便宜上必ず存在します。たとえば、これを使用して、その子のすべてに影響するオプションを設定できます。ChartAxis Shape 階層については、ChartAxis を参照してください。

注意事項

類似オブジェクトの使用例については、ChartAxis.axis-group を参照してください。
既定では、補助目盛りは作成されません。補助目盛りを作成するには、ChartAxis の独自のサブクラスまたはその実装の 1 つを作成し、ChartAxis.generate-minor-ticks をオーバーライドする必要があります。


position (フィールド)
public-get private-set ChartAxis.position:AxisPosition =AxisPosition.none

AxisPosition で定義された LayeredChart 内のこの軸の位置。

注意事項

この値は、ChartAxis.update-layout の呼び出しまたは LayeredChart.update-layout からの自身の呼び出しの間に更新されます。


style-element (アクセサ)
アクセサ public ChartAxis.style-element:String

スタイリングの目的のための、この Visual の "要素" や "型" です。

説明

この実装によって Visual._style-elementの値が返されますが、通常は定数を返すためにオーバーライドされます。

オーバーライド

Visual のサブクラスのスタイルが他のオブジェクトと異なる場合、このゲッターは適切な文字列を返すようにオーバーライドされる必要があります。 慣例では,この文字列はクラス名または、オブジェクトを生成するマークアップの名前です。
オーバーライドでは、空の文字列でないかぎり、self._style-elementを返さなければなりません。
導入: バージョン 6.0


tick-label-factory (非ローカル オプション)
public ChartAxis.tick-label-factory:TickLabelFactory

この ChartAxis 内の目盛りラベル生成のためのファクトリ プロシージャ。

説明

tick-label-factory を参照してください。


x-axis? (アクセサ)
アクセサ public final ChartAxis.x-axis?:bool

この軸が現在 LayeredChart 内の X 軸として使用されている場合は true



y-axis? (アクセサ)
アクセサ public final ChartAxis.y-axis?:bool

この軸が現在 LayeredChart 内の Y 軸として使用されている場合は true






メソッド詳細
clear-shapes (メソッド)
public {ChartAxis.clear-shapes}:void

この軸の Shape 内容をクリアします。

説明

この場合、軸の Shape 子は削除されません。代わりに、その Shape 子の次のオブジェクトがクリアされます。

注意事項

このメソッドは、ChartAxis 自体から呼び出されることのみを想定しています。特に、 ChartAxis.regenerate-shapes は、このメソッドを呼び出します。
必ずしもこのメソッドを呼び出す必要はありませんが、クリアが実行される時点で通知を受け取れるように、サブクラスでこれをオーバーライドすると便利です。


detach (メソッド)
public {ChartAxis.detach}:void

この形状を親から切り離します。

説明

これは、意味的にはこの形状の親に対して ShapeContainerBase.remove を呼び出すのと同じです。
親を持たない形状に対して detach を呼び出しても効果はありません。


generate-axis-label (メソッド)
public abstract {ChartAxis.generate-axis-label}:#Shape

この ChartAxis に適切な軸ラベルを生成します。

戻り値

ラベルを表す Shape、または null (ラベルを表示しない場合)。

説明

ChartAxis サブクラスはこのメソッドを定義する必要があります。既存の ChartAxis クラスをサブクラス化しようとする場合、このメソッドをオーバーライドすることもできます。軸ラベルの外観の制御については、ChartAxis.get-axis-label を参照してください。
作成される Shape は位置決めの必要がありません。ChartLabelGroup が、適宜その位置を軸の位置に合わせて直接に設定するからです。この位置に関するオフセットを指定したい場合、ラベル形状に必要な変換を適用して、それを ShapeGroup 内に組み込むことができます。ShapeGroup は、ChartLabelGroup で位置付けられるオブジェクトになり、組み込んだ子 Shape は、これと共に配置されます。スケーリングを使用した場合にこれを示す例については、axis-label を参照してください。
生成されたオブジェクトがその原点に対して適切に位置付けられることに注意する必要があります。原点は、軸の中央に沿って、軸自体の近くに配置され、オブジェクトの回転角度は、水平軸、垂直軸それぞれで 0 度、 -90 度になります。こうした理由で、生成した形状が意図した位置になるように (たとえば、軸および目盛りが重ならないように)、その形状を注意して位置付ける必要があります。
TextShape などのオブジェクトに関する halignhoriginなどのオプションを使用して、このことを確実にする方法については、axis-label を参照してください。

注意事項

これは通常、軸を制御するデータに依存するように実装されます。たとえば、DataSeriesAxis およびサブクラスは、そこに含まれるすべての RecordFieldRecordField.caption 値を含む TextShape が返します。


generate-axis-line (メソッド)
protected {ChartAxis.generate-axis-line}:void

この軸の軸線を表すのに必要な Shape を生成します。

説明

ChartAxis サブクラスでこのメソッドをオーバーライドし、軸線の生成方法を変更できます。既定では、このメソッドにより、AxisLineShape が生成されます。
生成されたオブジェクトは、ChartAxis.axis-line-group に追加されます。これらのオブジェクトの原点は、軸自体のそれと一致します。


generate-major-tick (メソッド)
public {ChartAxis.generate-major-tick
value:any,
tick-index:int,
position:Distance = {self.get-position value}
}:Shape

主目盛りを表す Shape を生成します。

value: この目盛りを表わすデータ値。これは、ChartAxis.get-position に渡され、ChartTick.value として使用される場合があります。
tick-index: この目盛りのゼロ ベースのインデックス。これは、色が交互に変わる目盛りの色の変更などの機能に役立ちます。
position: 目盛りが配置される軸に沿った位置。既定では、ChartAxis.get-position は、正しい位置を取得するために value を使用して呼び出されます。既に値を計算している場合は、position を使用してその値を渡すだけです。これは単なる最適化です。

戻り値

目盛りを表す Shape

説明

このメソッドは、一般的に、必要な目盛りを作成するために、ChartAxis.generate-major-ticks の実装によって呼び出されます。
このメソッドは、major-tick-factory があった場合にその値を呼び出すために実装されます。なければ MajorTickShape が作成されます。ソースに関係なく、結果の ShapeChartAxis.major-tick-group に追加され、返されます。

注意事項

ChartAxis をサブクラス化しない限り、major-tick-factory を設定することは、主目盛りの外観を制御するために推奨される手法です。


generate-major-ticks (メソッド)
protected abstract {ChartAxis.generate-major-ticks}:void

この軸に沿った主目盛りを表すのに必要なすべての Shape を生成します。

説明

これは、ChartAxis の実装で、生成する目盛りの数、目盛りを配置する場所、およびその方法を明らかにして、実際に実行するメソッドです。このメソッドは、ChartAxis.update-layout から呼び出されることを想定しています。
このメソッドを実装する場合は、ChartAxis.generate-major-tick を使用して、標準の目盛り形状を作成すると便利です。生成された Shape は、ChartAxis.major-tick-group に追加されます。


generate-minor-tick (メソッド)
public {ChartAxis.generate-minor-tick
value:any,
tick-index:int,
position:Distance = {self.get-position value}
}:Shape

補助目盛りを表す Shape を生成します。

value: この目盛りを表わすデータ値。これは、ChartAxis.get-position に渡され、ChartTick.value として使用される場合があります。
tick-index: この目盛りのゼロ ベースのインデックス。これは、色が交互に変わる目盛りの色の変更などの機能に役立ちます。
position: 目盛りが配置される軸に沿った位置。既定では、ChartAxis.get-position は、正しい位置を取得するために value を使用して呼び出されます。既に値を計算している場合は、position を使用してその値を渡すだけです。これは単なる最適化です。

戻り値

目盛りを表す Shape

説明

このメソッドは、必要な目盛りを作成するために、ChartAxis.generate-minor-ticks の実装によって呼び出すことができます。
このメソッドは、minor-tick-factory があった場合にその値を呼び出すために実装されます。なければ MinorTickShape が作成されます。ソースに関係なく、結果の ShapeChartAxis.minor-tick-group に追加され、返されます。

注意事項

ChartAxis をサブクラス化しない限り、minor-tick-factory を設定することは、補助目盛りの外観を制御するために推奨される手法です。
既定では、補助目盛りは作成されません。補助目盛りを作成するには、ChartAxis の独自のサブクラスまたはその実装の 1 つを作成し、ChartAxis.generate-minor-ticks をオーバーライドする必要があります。


generate-minor-ticks (メソッド)
protected abstract {ChartAxis.generate-minor-ticks}:void

この軸に沿った補助目盛りを表すのに必要なすべての Shape を生成します。

説明

これは、ChartAxis.generate-major-ticks に対応する補助目盛りです。標準軸を実装しても補助目盛りは生成されないので、ChartAxis.generate-minor-ticks は何も実行しません。このメソッドは、ChartAxis.update-layout から呼び出されることを想定しています。
このメソッドを実装しようとする場合は、ChartAxis.generate-minor-tick を使用して、標準の目盛り形状を作成すると便利です。生成された Shape は、ChartAxis.minor-tick-group に追加されます。


generate-tick-label (メソッド)
public {ChartAxis.generate-tick-label
tick:ChartTick,
tick-rotation:Angle
}:#Shape

指定の目盛りの目盛りラベルを生成します。

tick: ラベルが作成される ChartTick
tick-rotation: 目盛りを配置する Angle。これは通常、tick-label-rotation で制御します。

戻り値

ラベルを表す Shape、または null (この値では目盛りラベルを表示しない場合)。

説明

既存の ChartAxis クラスをサブクラス化しようとする場合、このメソッドをオーバーライドできます。目盛りラベルの外観の制御については、ChartAxis.get-tick-label を参照してください。
作成される Shape は位置決めの必要がありません。ChartLabelGroup が、適宜その位置を軸の位置に合わせて直接に設定するためです。(回転とスケールは影響を受けません。)この位置に関するオフセットを指定したい場合、ラベル形状に必要な変換を適用して、それを ShapeGroup 内に組み込むことができます。ShapeGroup は、ChartLabelGroup で位置付けられるオブジェクトになり、組み込んだ子 Shape は、これと共に配置されます。軸ラベルのスケーリングを使用する同様の手法を示す例については、axis-label を参照してください。
生成されたオブジェクトがその原点に対して適切に位置付けられることに注意する必要があります。原点は、目盛りが示す方向の axis-label-group-spacing で示されたオフセットの目盛りに位置付けられるように配置されます。生成した形状が意図した位置になるように (たとえば、軸および目盛りが重ならないように)、注意して位置付ける必要があります。
TextShape などのオブジェクトに関する halignhoriginなどのオプションを使用して、このことを確実にする方法については、tick-label-factory を参照してください。

注意事項

これは通常、単に TextShape 内の ChartTick.value を表示するために実装されます。DataSeriesAxis は、Domain.format を使用して、適切な String 表現が使用されるようにするために、このメソッドをオーバーライドします。


get-axis-label (メソッド)
public final {ChartAxis.get-axis-label}:#Shape

この軸のラベルとして使用するのに適切な Shape を作成します。

戻り値

Shape、または null (軸ラベルを表示しない場合)。

説明

このメソッドでは、必要に応じて、axis-label オプションが Shape に変換されます。既定では、axis-label は、ChartAxis.generate-axis-label を呼び出すプロシージャです。
この構造は、ChartAxis の実装でユーザー指定の axis-label オプションをオーバーライドしなくても、適切な方法でラベル生成をオーバーライドできるように用意されています。
ラベル生成をオーバーライドし、さらに ChartAxis をサブクラス化する場合、ChartAxis.generate-axis-label をオーバーライドする必要があります。そうでなければ、axis-label を設定する必要があります。

このオプションを使用して、軸ラベルを制御するデモンストレーションについては、axis-label を参照してください。


get-data-type (メソッド)
public abstract {ChartAxis.get-data-type
}:(type:AxisDataType, value:any)

ChartAxis の定義方法を記述します。

戻り値

この軸に関連するデータまたはメトリックを記述する AxisDataType およびそのメトリックを記述する値。

説明

このメソッドは、軸とデータを一致させる LayeredChart システムによって使用されます。たとえば、この軸が ChartDataSeries と直接関連付けられている場合は、これを該当するデータ系列のプロットに関連付けるのは適切です。そのため、このメソッドでは、軸内で使用されたデータ系列と一緒に AxisDataType.data-series が返されます。
次の表では、可能なそれぞれの AxisDataType について返されることが想定される値の型について説明しています。
AxisDataTypevalue記述の種類
AxisDataType.data-series{Array-of ChartDataSeries}この軸は 1 つ以上の ChartDataSeries に直接関連付けられ、その系列は返される配列に含まれます。すべてのデータ系列は同じ Domain オブジェクトを共有する必要があります。(これは、最も一般的に使用される軸のタイプです。)
AxisDataType.record-field{Array-of RecordField}この軸は、1 つ以上の RecordField に直接関連付けられます。すべてのフィールドは、同じ Domain を共有する必要があります。同じフィールドを使用していれば、データは軸に一致します。使用された RecordField が配列に返されます。
AxisDataType.field-name{Array-of String}AxisDataType.record-field と非常によく似た方法で、この軸は、名前によってレコードの 1 つ以上のレコード フィールドと関連付けられます。同じ名前のフィールドを使用していれば、データはこの軸に一致します。使用されたフィールド名が配列に返されます。
AxisDataType.typeType軸は、一定の Type を計測するものとして自身を定義します。NumericAxis-of は、このタイプの軸の例です。よりよい一致がないと、同じタイプを使用するデータがこの軸と比較されます。
AxisDataType.record-indexなし (null)この軸は、データを無視して、Record を順に配置します。このタイプの軸は、X 軸にのみ適しています。どのデータとも比較されますが、優先度が最も低い一致の種類です。DefaultChartAxis および DefaultBarChartAxis はこの種の軸の例です。


get-major-ticks-Iterator (メソッド)
public {ChartAxis.get-major-ticks-Iterator}:{Iterator-of ChartTick}

この軸で目盛りを繰り返すのに役立つ Iterator-of を返します。

戻り値

Iterator-of ChartTick

説明

このメソッドは、目盛りラベルとグリッド線を生成するために内部的に使用されます。これは、類似のタスクのアプリケーションで役立つことがあります。たとえば、アプレットは、目盛りでの値のハイライト表示のオプションなど、各目盛りに対応する一部のユーザー インターフェイス要素を提供できます。

注意事項

返された反復子は、生成されて ChartTick のサブクラス化を行う目盛りだけを返します。これが重要になるのは、ChartAxis.generate-major-ticks のサブクラス化または major-tick-factory の設定によって生成された目盛りを変更する場合だけです。それ以外は、すべての目盛りは常に ChartTick となります。
独自の目盛りオブジェクトを作成し、そのオブジェクトが ChartTick からのサブクラス化を行わない場合、そのオブジェクトはここに存在しません。結果として、その目盛りには目盛りラベルもグリッド線も生成されません。独自の ChartTick サブクラスを作成する方法の例については、major-tick-factory を参照してください。


get-minor-ticks-Iterator (メソッド)
public {ChartAxis.get-minor-ticks-Iterator}:{Iterator-of ChartTick}

この軸で目盛りを繰り返すのに役立つ Iterator-of を返します。

戻り値

Iterator-of ChartTick

説明

このメソッドは、ChartAxis.get-major-ticks-Iterator と似ていますが、補助目盛りに関係する点が異なります。

注意事項

既定では、補助目盛りは作成されません。補助目盛りを作成するには、ChartAxis の独自のサブクラスまたはその実装の 1 つを作成し、ChartAxis.generate-minor-ticks をオーバーライドする必要があります。


get-position (メソッド)
public {ChartAxis.get-position value:any}:Distance

データ値に対応する空間位置を計算します。

value: 軸の種類によって、必要な型が異なる値。互換性のない型を渡すとエラーが発生します。

戻り値

ChartAxis の原点からその長さに沿って測定された Distance。これは垂直軸の値を返しますが、返される値は軸が上に、つまり負の Y 方向に延びるにつれて減少していき、ついには負になります。

説明

通常、この目的には ChartLayer.get-data-mapping を通じて得られた ChartDataMapping を使用するほうが簡単です。ただし、特定の Record 対応値ではなく、任意の値を検索したい場合、このメソッドが役立ちます。
value の必要な Type は、軸の実装に基づいて変わります。これは、ChartAxis.get-data-type によって得られた AxisDataType に基づいて分割できます。
AxisDataTypevalue
AxisDataType.data-series提供されたデータのType (ChartDataSeries.field.domain.typeなど。)
AxisDataType.record-field{Array-of RecordField}フィールドのType (RecordField.domain.typeなど)。
AxisDataType.field-name{Array-of String}特定の軸実装によって定義されます。
AxisDataType.typeType同じ TypeChartAxis.get-data-type によって返されます。
AxisDataType.record-indexなし (null)ゼロベースのレコード インデックスを表す int


get-position-at-zero (メソッド)
public abstract {ChartAxis.get-position-at-zero}:Distance

この軸に沿ったゼロに対応する空間位置を取得します。

説明

これにより、値は ChartAxis.get-position と同じ動作を持つこの軸の長さと共に返されます。詳細については、該当のメソッドを参照してください。

注意事項

ゼロの概念は、すべての軸で意味を持つわけではありません。具体的には、GenericDataSeriesAxis および EnumeratedBarChartAxis は序数軸であって、連続値ベースの軸でないので、ゼロの概念は適用しません。こうした軸では常に 0m が返されます。


get-relative-position (メソッド)
public abstract {ChartAxis.get-relative-position value:any}:Fraction

データ値に対応する空間位置を計算します。

value: 軸の種類によって、必要な型が異なる値。ChartAxis.get-position を参照してください。互換性のない型を渡すとエラーが発生します。

戻り値

軸に沿ったデータ値の位置を示す Fraction。軸の原点の 0 から、軸の終点の 1 までです。

説明

これは基本的に、軸の方向または長さの概念がない ChartAxis.get-position と同じです。実際、このメソッドはこの意味で実装されます。詳細については、ChartAxis.get-position を参照してください。


get-tick-label (メソッド)
public final {ChartAxis.get-tick-label
tick:ChartTick,
tick-rotation:Angle
}:#Shape

目盛りのラベルとして使用するのに適切な Shape を作成します。

tick: ラベルが作成される ChartTick
tick-rotation: 目盛りを配置する Angle。これは通常、tick-label-rotation で制御します。

戻り値

ラベルを表す Shape、または null (この値では目盛りラベルを表示しない場合)。

説明

このメソッドでは、tick-label-factory オプションに格納されたプロシージャが呼び出され、必要に応じて結果が Shape に変換されます。既定では、tick-label-factory は、ChartAxis.generate-tick-label を呼び出すプロシージャです。
この構造は、ChartAxis の実装でユーザー指定の tick-label-factory オプションをオーバーライドしなくても、適切な方法でラベル生成をオーバーライドできるように用意されています。
ラベル生成をオーバーライドし、さらに ChartAxis をサブクラス化する場合、ChartAxis.generate-tick-label をオーバーライドする必要があります。そうでなければ、tick-label-factory を設定する必要があります。

このオプションを使用して、目盛りラベルを制御するデモンストレーションについては、tick-label-factory を参照してください。


get-tick-label-alignment (メソッド)
public {ChartAxis.get-tick-label-alignment
rotation:Angle
}:(halign:String, valign:String)

目盛りラベルの既定の配置を取得します。

rotation: 通常、tick-label-rotation の値により決定される目盛りの回転角度。

戻り値

この軸の目盛りラベルに推奨される水平および垂直方向の配置を記述する 2 つの String

説明

このメソッドは TextShape または Frame のようなオブジェクトに適した整列値を返します。これらの値は ChartAxis.position および rotation に基づきます。
このメソッドは主に内部で使用されます。ただし、目盛りラベル ファクトリの実装に役立つ場合があります。これを行う方法については、tick-label-factory を参照してください。


get-value (メソッド)
public {ChartAxis.get-value position:Distance}:any

この軸に沿った位置に対応するデータ値を計算します。

position: この軸に沿った位置。これは 0mChartAxis.length (あるいはこの軸が垂直方向の場合は -ChartAxis.length) の間にある必要があります。

戻り値

この軸に適切な型の値。各種の軸に適切な値の Type については、ChartAxis.get-position を参照してください。

説明

通常、ChartLayer.get-inverse-data-mapping を通じて ChartInverseDataMapping を使用すると、より便利です。ただし、時として、軸と直接やりとりすることも役立ちます。
ほとんどの軸の場合、返される値は、ソース データに含まれる最も近い値 (または、レコード インデックス ベースの軸の場合は最も近いレコード インデックス) となります。ただし、NumericDataSeriesAxis-of および NumericAxis-of は、そのドメイン内の連続値を返します。


get-value-relative (メソッド)
public abstract {ChartAxis.get-value-relative position:Fraction}:any

この軸に沿った位置に対応するデータ値を計算します。

position: この軸に沿った位置 (分数として)。これは、01 の間にある必要があります。

戻り値

この軸に適切な型の値。各種の軸に適切な値の Type については、ChartAxis.get-position を参照してください。

説明

これは基本的に、軸の方向または長さの概念がない ChartAxis.get-value と同じです。実際、このメソッドはこの意味で実装されます。詳細については、ChartAxis.get-value を参照してください。


note-min-max-computation-changed (メソッド)
public {ChartAxis.note-min-max-computation-changed}:void

LayeredChart.compute-data-min-max によって返される値に影響を与える要素において、変更があったことをこの ChartAxis に通知します。

説明

一般的に、LayeredChart.compute-data-min-max に頼っている実装ではそれらの最小値と最大値を再計算し、レイアウトが無効にされていることを確認したくなりますが、DataSeriesAxis やそのサブクラス全てでこれを自動的に行います。その為、このメソッドを直接呼び出す必要はありません。LayeredChart.note-min-max-computation-changed から呼び出されます。
このメソッドは、データ自身が変更した場合には呼び出され ない ことに注意してください。その為、ChartDataSeries 上で Observer.observe を使用してください。
導入: バージョン 6.0


regenerate-shapes (メソッド)
public {ChartAxis.regenerate-shapes}:void

この軸を表すのに必要なすべての Shape オブジェクトを作成します。

説明

このメソッドでは、次のメソッドを順に呼び出すことによって、必要な形状が生成されます。

注意事項

このメソッドは、ChartAxis.update-layout によって呼び出されることのみを想定しています。ただし、これが行われる時点で通知を受け取りたい場合、サブクラスでオーバーライドすることも有効です。


transform-from-chart (メソッド)
public {ChartAxis.transform-from-chart point:Distance2d}:Distance2d

LayeredChart の座標系のポイントをこの ChartAxis のポイントに変換します。

point: 変換する Distance2d

戻り値

ローカル座標内の point

説明

基本的にこれは、次のオブジェクトの transformation プロパティで Transformation2d.inverse-transform-point の一連の呼び出しを順に行うための便利な簡略メソッドです。

注意事項

このメソッドは、ChartAxis.get-value を呼び出す目的で、グラフの座標から位置を変換する場合に役立ちます。


transform-to-chart (メソッド)
public {ChartAxis.transform-to-chart point:Distance2d}:Distance2d

この ChartAxis のローカル座標系のポイントを組み込み側 LayeredChart のポイントに変換します。

point: 変換する Distance2d

戻り値

point (LayeredChart 座標内)。

説明

基本的にこれは、次のオブジェクトの transformation プロパティで Transformation2d.transform-point の一連の呼び出しを順に行うための便利な簡略メソッドです。

注意事項

このメソッドは、ChartAxis.get-position の結果などに基づいてグラフ レベルでオブジェクトを追加または削除したい場合に役立ちます。


update-layout (メソッド)
public {ChartAxis.update-layout length:Distance}:void

軸に必要なすべてのレイアウト操作を実行します。

length: 軸の長さ。ChartAxis.length はこの値に設定されます。

説明

ChartAxis.update-layout は、この軸に関連して生成されたすべての Shape を再生成します。これを行うには、ChartAxis.clear-shapes および ChartAxis.regenerate-shapes が呼び出されます。
このメソッドは、グラフ レイアウト処理中に LayeredChart.update-layout によって呼び出されます。これを直接呼び出す必要は、あまりありません。ただし、軸でレイアウト処理を実行する直前または直後に操作を実行するために、サブクラスでこのメソッドをオーバーライドすると便利な場合があります。