PieSet (クラス)
public abstract PieSet {inherits Shape, Observer}
パッケージ: CURL.GUI.CHARTS
直接継承しているサブクラス: StandardPieSet

PieChart の環または円を表すクラス。

説明

PieSet オブジェクトは、プロットされるデータおよびそのプロット方法を定義するために使用します。サブクラス化が可能であるように設計されているので、独自のグラフ スタイルを作成できます。ただし、標準実装 StandardPieSet によってほとんどの要件は満たされます。
PieSet.label-factory を使用するか、各種のオプションを設定することにより、このグラフのラベルの外観をカスタマイズできます。ラベルのみを変更するオプションの場合、PieSet.label-group でそのオプションを設定できます。そうでなければ、PieSet で設定するか、PieChart または PiePlotArea でも設定できます。
同様に、PieSet.shape-factory を使用するか、各種のオプションを設定して、くさび形の外観をカスタマイズできます。PieSet.wedge-group は、くさび形状の Shape 親であるため、くさび形のみを変更するオプション設定にこれを使用できます。

注意事項

Shape オブジェクトを PieSet 自体に追加することによって、グラフに注釈を付けることは一般的です。PieSet の原点は、プロット エリアの中央に位置する PiePlotArea のそれと同じです。PieSet は、PieSet.update-layout 時に形状の子をクリアします。これは、この実装に追加されたオブジェクトがすべてレイアウト処理中に削除されることを意味します。
ChartLayoutChanged イベントに応答するグラフの注釈を配置するようにお勧めします。これにより、削除されている可能性があるオブジェクトを追加できるようになります。
次の非ローカル オプションは、特に、PieSet に適用します。
(この一覧では、PieSet の子に適用するオプションは含まれていないことに注意してください。たとえば、color は、TextShape によって使用されますが、これは、ラベルに影響することを意味します。)
このオブジェクトは、"PieSet"のスタイル ルールを記述することによってスタイル化することが出来ます。

この例は、グラフの中央に飾りの星形が追加されていることを示しています。(BaseScatterLayer.generate-stock-shape は、星形を作成するために使用されます。

例: PieSet の注釈付け
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{AntialiasedFrame
    {PieChart
        width = 8cm,
        height = 8cm,
        inner-radius = 2cm,
        {PieSet
            sample-records,
            "Age",
            {on ChartLayoutChanged at pie-set:PieSet do
                {pie-set.add
                    {BaseScatterLayer.generate-stock-shape
                        pie-set,
                        ScatterShape.star,
                        {Distance2d 0m, 0m},
                        2cm,
                        2cm,
                        1px,
                        LineStyle.solid,
                        "gold"
                    }
                }
            }
        }
    }
}
複数円セットの例などの詳細については、PieChart を参照してください。

コンストラクタ
default:新規の PieSet を初期化します。
コンストラクタ protected {PieSet.default
label-data:#ChartDataSeries = null,
label-value?:bool = false,
label-set?:bool = false,
wedge-labels?:bool = true,
wedge-group:Shape = {ShapeGroup},
label-group:Shape = {ShapeGroup},
shape-factory:PieSet.ShapeFactory = PieSet.default-shape-factory,
label-factory:PieSet.LabelFactory = PieSet.default-label-factory,
border-color:FillPattern = FillPattern.black,
...
}
default:新規の PieSet を作成します。
ファクトリ public {PieSet.default
label-data:#ChartDataSeries = null,
label-value?:bool = false,
label-set?:bool = false,
wedge-labels?:bool = true,
wedge-group:Shape = {ShapeGroup},
label-group:Shape = {ShapeGroup},
shape-factory:PieSet.ShapeFactory = PieSet.default-shape-factory,
label-factory:PieSet.LabelFactory = PieSet.default-label-factory,
border-color:FillPattern = FillPattern.black,
...
}:PieSet

プロパティ
chart:この PieSet を含む PieChart (ある場合)。
フィールド public-get private-set PieSet.chart:#PieChart
color-associations:特定の色を特定の Record に関連付けるマッピングを提供します。
フィールド public constant PieSet.color-associations:{Array-of PieColorAssociation} ={new {Array-of PieColorAssociation}}
label-data:くさび形ラベルと凡例項目に使用されるデータを定義する ChartDataSeries
アクセサ public PieSet.label-data:#ChartDataSeries
セッター public PieSet.label-data:#ChartDataSeries
label-factory:この PieSet 内の各くさび形ラベル Shape を生成するために使用されるファクトリ プロシージャ。
アクセサ public PieSet.label-factory:PieSet.LabelFactory
セッター public PieSet.label-factory:PieSet.LabelFactory
label-group:生成されたすべてのくさび形ラベル Shape のコンテナとして使用される Shape
フィールド public constant PieSet.label-group:Shape
label-set?:true の場合、くさび形ラベル (生成された場合) にはグラフ化されるデータの 1 つ以上の RecordField.caption 値が含まれます。
アクセサ public PieSet.label-set?:bool
セッター public PieSet.label-set?:bool
label-value?:true の場合、くさび形ラベル (生成された場合) にはそのくさび形でのデータの値が表示されます。
アクセサ public PieSet.label-value?:bool
セッター public PieSet.label-value?:bool
labels:この PieSet のくさび形ラベルを表す Shape を含む配列。
フィールド public constant PieSet.labels:{Array-of Shape} ={new {Array-of Shape}}
legend-enabled?:Chart の凡例作成を有効または無効にするために使用できる bool
非ローカル オプション public PieSet.legend-enabled?:bool
legend-entry-factory:Chart の凡例の個別の凡例項目を生成するために使用されるファクトリ プロシージャ。
非ローカル オプション public PieSet.legend-entry-factory:LegendEntryFactory
pie-label-radius:PieSet 内でラベルが配置される場合の半径。
非ローカル オプション public PieSet.pie-label-radius:any
pie-set-inner-margin:PieChart 内の連続した PieSet の間の余白。
非ローカル オプション public PieSet.pie-set-inner-margin:any
pie-set-shape-quality:PieSet のくさび形の形状を作成する際に必要な品質。
非ローカル オプション public PieSet.pie-set-shape-quality:Fraction
pie-set-starting-angle:PieSet でそのくさび形 Shape の生成が始まる Angle
非ローカル オプション public PieSet.pie-set-starting-angle:Angle
pie-wedge-border-line-style:PieSet 内で生成された Shape に適用される LineStyle
非ローカル オプション public PieSet.pie-wedge-border-line-style:LineStyle
pie-wedge-border-width:PieSet 内に生成される Shape に適用される境界幅。
非ローカル オプション public PieSet.pie-wedge-border-width:any
set-data:この PieSet でプロットされる ChartDataSeries
フィールド public constant PieSet.set-data:ChartDataSeriesArray ={ChartDataSeriesArray}
shape-factory:この PieSet 内の各くさび形 Shape を生成するために使用されるファクトリ プロシージャ。
アクセサ public PieSet.shape-factory:PieSet.ShapeFactory
セッター public PieSet.shape-factory:PieSet.ShapeFactory
style-element:スタイリングの目的のための、この Visual の "要素" や "型" です。
アクセサ public PieSet.style-element:String
wedge-group:生成されたすべてのくさび形 Shape のコンテナとして使用される Shape
フィールド public constant PieSet.wedge-group:Shape
wedge-labels?:false の場合、他のプロパティ値に関係なく、くさび形ラベルは生成されません。
アクセサ public PieSet.wedge-labels?:bool
セッター public PieSet.wedge-labels?:bool
wedges:この PieSet のくさび形を表す Shape を含む配列。
フィールド public constant PieSet.wedges:{Array-of Shape} ={new {Array-of Shape}}
プロパティ 継承 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, clonable-class?, 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

クラス変数と定数
LabelFactory:各くさび形ラベルの PieSet Shape 要素の生成に使用されるファクトリー プロシージャの Type。これは、オプション PieSet.label-factory の型です。
public constant PieSet.LabelFactory:ProcType ={proc-type {pie-set:PieSet, set-label:#String, data-label:#String, value-label:#String, position:Distance2d, data:ChartDataSeries, record:Record, record-index:int, inner-radius:Distance, outer-radius:Distance, total-radius:Distance, start-angle:Angle, stop-angle:Angle }:Shape }
ShapeFactory:各くさび型の PieSet Shape 要素の生成に使用されるファクトリー プロシージャの Type。これは、オプション PieSet.shape-factory の型です。
public constant PieSet.ShapeFactory:ProcType ={proc-type {pie-set:PieSet, data:ChartDataSeries, record:Record, record-index:int, inner-radius:Distance, outer-radius:Distance, start-angle:Angle, stop-angle:Angle, max-error:Distance, fill-pattern:FillPattern, border-width:any, border-line-style:LineStyle }:Shape }

クラス プロシージャ
default-label-factory:PieSet.label-factory の既定値。
public {PieSet.default-label-factory
pie-set:PieSet,
set-label:#String,
data-label:#String,
value-label:#String,
position:Distance2d,
data:ChartDataSeries,
record:Record,
record-index:int,
inner-radius:Distance,
outer-radius:Distance,
total-radius:Distance,
start-angle:Angle,
stop-angle:Angle
}:Shape
default-shape-factory:PieSet.shape-factory の既定値。
public {PieSet.default-shape-factory
pie-set:PieSet,
data:ChartDataSeries,
record:Record,
record-index:int,
inner-radius:Distance,
outer-radius:Distance,
start-angle:Angle,
stop-angle:Angle,
max-error:Distance,
fill-pattern:FillPattern,
border-width:any,
border-line-style:LineStyle
}:Shape

メソッド
append-color-association:PieSet.color-associationsPieColorAssociation を追加します。
public {PieSet.append-color-association
association:PieColorAssociation
}:void
append-data-series:グラフ作成される PieSet.set-dataChartDataSeries を追加します。
public {PieSet.append-data-series data:ChartDataSeries}:void
compute-data-abs-sum:この PieSet 内のデータの絶対値の合計を計算します。
public {PieSet.compute-data-abs-sum}:any
create-legend-entries:この PieSet に必要な凡例項目を作成します。
public {PieSet.create-legend-entries
container:{Array-of Graphic},
entries-already-created:PieLegendKeySet
}:void
detach:この形状を親から切り離します。
public {PieSet.detach}:void
draw:このオブジェクトの可視表現を描画します。
public {PieSet.draw r2d:Renderer2d}:void
estimate-bounds:この PieSet に必要な境界を見積もります。
public {PieSet.estimate-bounds
pie-set-index:int,
inner-radius:Distance,
outer-radius:Distance,
total-radius:Distance,
dest:GRect = {GRect.empty}
}:GRect
get-data-series-from-shape:Shape に関連した ChartDataSeries を決定します (ある場合)。
public abstract {PieSet.get-data-series-from-shape
shape:Shape
}:#ChartDataSeries
get-fill-pattern-for-record:この PieSetRecord の 1 つのグラフ作成で使用する FillPattern を取得します。
public {PieSet.get-fill-pattern-for-record
record:Record,
record-index:int
}:FillPattern
get-label-position:くさび形ラベルの位置を計算します。
public {PieSet.get-label-position
data:ChartDataSeries,
record:Record,
record-index:int,
inner-radius:Distance,
outer-radius:Distance,
total-radius:Distance,
start-angle:Angle,
stop-angle:Angle
}:Distance2d
get-outside-margin:このグラフでその一番外側からグラフの境界または凡例までの必要スペースを決定します。
public {PieSet.get-outside-margin}:Distance
get-own-bounds:ローカル座標系におけるこの Shape の四角形のレンダリング境界を計算します。
public {PieSet.get-own-bounds dest:GRect = {GRect.empty}}:GRect
get-record-at-point:指定の位置に RecordChartDataSeries、および Shape があれば、それらを確認してください。
public abstract {PieSet.get-record-at-point}:(r:#Record, data:#ChartDataSeries, shape:#Shape)
get-wedge-size:この PieSet 内のすべての値の合計に対する 1 つの値の割合を決定します。
public {PieSet.get-wedge-size value:any}:Fraction
handle-observer-message:監視対象のオブジェクトがメッセージを送信するときにこのメソッドを呼び出します。Observer はこのメソッドを実装して、変更が発生したときに処理を実行する必要があります。
protected {PieSet.handle-observer-message
sender:Observable,
message:any
}:void
non-keyword-init-arg: InitRestArgParser.process-rest-args で非キーワード引数が検出されると、呼び出されます。
public {PieSet.non-keyword-init-arg a:any}:void
note-color-associations-changed:この PieSetPieSet.color-associations の内容が変更されたことを通知します。
public {PieSet.note-color-associations-changed}:void
note-set-data-array-changed:この PieSetPieSet.set-data の順序が変更されたことを通知します。
public {PieSet.note-set-data-array-changed}:void
remove-color-association:PieColorAssociationPieSet.color-associations から削除します。
public {PieSet.remove-color-association
association:PieColorAssociation
}:void
remove-data-series:ChartDataSeriesPieSet.set-data から削除します。
public {PieSet.remove-data-series data:ChartDataSeries}:void
self-contains-point?:ポイントがこの Shape 内にあるかどうかを判定します。
public {PieSet.self-contains-point? x:Distance, y:Distance}:bool
self-intersects-polygon?:ポリゴンがこの Shape と交差するかどうかを判定します。
public {PieSet.self-intersects-polygon?}:bool
update-layout:この PieSet の内部レイアウトを更新します。
public abstract {PieSet.update-layout
pie-set-index:int,
inner-radius:Distance,
outer-radius:Distance,
total-radius:Distance
}:void
メソッド 継承 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-bounds-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
メソッド 継承 Observer: observe, stop-observing
メソッド 継承 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, clone-appearance-helper, 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, 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 {PieSet.default
label-data:#ChartDataSeries = null,
label-value?:bool = false,
label-set?:bool = false,
wedge-labels?:bool = true,
wedge-group:Shape = {ShapeGroup},
label-group:Shape = {ShapeGroup},
shape-factory:PieSet.ShapeFactory = PieSet.default-shape-factory,
label-factory:PieSet.LabelFactory = PieSet.default-label-factory,
border-color:FillPattern = FillPattern.black,
...
}

新規の PieSet を初期化します。

説明

PieSet は抽象クラスであるので、このコンストラクタはサブクラスによってのみ使用されます。PieSet をインスタンス化する標準的な方法、およびこのコンストラクタが受け取るパラメータについては、PieSet.default#factory を参照してください。


default (ファクトリ)
public {PieSet.default
label-data:#ChartDataSeries = null,
label-value?:bool = false,
label-set?:bool = false,
wedge-labels?:bool = true,
wedge-group:Shape = {ShapeGroup},
label-group:Shape = {ShapeGroup},
shape-factory:PieSet.ShapeFactory = PieSet.default-shape-factory,
label-factory:PieSet.LabelFactory = PieSet.default-label-factory,
border-color:FillPattern = FillPattern.black,
...
}:PieSet

新規の PieSet を作成します。

label-data: ラベルを提供するために使用される ChartDataSeries (ある場合)。PieSet.label-data を参照してください。この値が null であると、ラベルも凡例項目も作成できません。
label-value?: true の場合で、wedge-labels?true である場合、くさび形ラベルにはそのくさび形用のデータの値が含まれます。
label-set?: true の場合で、wedge-labels?true である場合、くさび形ラベルには ChartDataSeries を定義するフィールドの名前が含まれます。これは、複数の円セットを含むグラフの場合に役立ちます。
wedge-labels?: false の場合、label-value?label-set?、および label-data の値に関係なく、くさび形にラベルは生成されません。
wedge-group: 生成されたすべてのくさび形 Shape のコンテナとして使用される Shape。これを使用して、くさび形にのみ適用されるオプションを設定できます。PieSet.wedge-group を参照してください。
label-group: 生成されたすべてのくさび形ラベル Shape のコンテナとして使用される Shape。これを使用して、ラベルにのみ適用されるオプションを設定できます。PieSet.label-group を参照してください。
shape-factory: PieSet.shape-factory の初期値。このプロシージャは、くさび形 Shape の作成を制御します。PieSet.ShapeFactory も参照してください。
label-factory: PieSet.label-factory の初期値。このプロシージャは、くさび形ラベル Shape の作成を制御します。PieSet.LabelFactory も参照してください。
border-color: くさび形の境界線として使用される色を記述する FillPattern。この値は、border-color 非ローカル オプションの初期化に使用されるだけです。
...:
残余引数は、PieSet.color-associations に追加するために PieColorAssociation とするか、Shape.default が受け取るいずれかの引数 (EventHandler やオプションの初期化など) とすることができます。
... を使用して、次の 2 つのいずれかの方法でプロットされるデータ系列を初期化することもできます。
  • 1 つの RecordSet とそれに続けて該当する RecordSet からの任意の数のフィールド指定を、フィールドを命名する StringInterface として、あるいは RecordField オブジェクトとして渡すことができます。これらは ChartDataSeries オブジェクトに変換されて、PieSet.set-data に追加されます。
  • PieSet.set-data への直接追加のために、任意の数の ChartDataSeries オブジェクトを渡すこともできます。指定の PieSet 内のすべてのデータ系列は同じ RecordSet を原点とし、同じ Domain (したがって同じ Type) を使用する必要があることに注意してください。
プロットされるすべてのデータは数値である必要があることに注意してください。

説明

これはコンストラクタではなく、ファクトリーです。PieSet が抽象クラスであるためです。このファクトリーは、標準実装 StandardPieSet のインスタンスを作成して、返します。この情報は、PieSet または StandardPieSet をサブクラス化したい場合にだけ必要です。

PieChart を参照してください。



プロパティ詳細
chart (フィールド)
public-get private-set PieSet.chart:#PieChart

この PieSet を含む PieChart (ある場合)。

説明

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


color-associations (フィールド)
public constant PieSet.color-associations:{Array-of PieColorAssociation} ={new {Array-of PieColorAssociation}}

特定の色を特定の Record に関連付けるマッピングを提供します。

説明

PieColorAssociation を使用して、自動カラー選択プロセスをオーバーライドできます。ほとんどのアプリケーションは、すべてのセットに使用されるカラー パレットをオーバーライドするために、Chart.color-palette を使用します。ただし、何かの理由で、個別の円セットでこれを制御したい場合、あるいは PieSet 間で異なる方法でこれを制御したい場合は、使用するメカニズムは PieSet.color-associations です。
PieColorAssociationPieSet コンストラクタに提供できます。あるいは PieSet.append-color-associationPieSet.remove-color-association、または直接操作を使用して、関連付けを変更できます。
この配列のどんな直接操作でも許されます。ただし、プロットと関連要素が再生成されるように、配列が変更された場合には、必ず PieSet.note-color-associations-changed を呼び出す必要があります。

この例では、PieSet の両方ではなく一方だけ、「Nova」のレコードの色がどのように赤に変わるかに注意してください。

例: PieSet.color-associations を使用しての Record の色の変更。
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{PieChart
    width = 10cm,
    height = 10cm,
    pie-set-inner-margin = 6mm,
    {PieSet
        sample-records,
        "Age",
        {PieColorAssociation
            "Name",
            "Nova",
            FillPattern.red
        },
        wedge-labels? = false,
        label-data =
            {ChartDataSeries sample-records, "Name"}
    },
    {PieSet
        sample-records,
        "Age",
        wedge-labels? = false,
        label-data =
            {ChartDataSeries sample-records, "Name"}
    }
}


label-data (アクセサ)
アクセサ public PieSet.label-data:#ChartDataSeries
セッター public PieSet.label-data:#ChartDataSeries

くさび形ラベルと凡例項目に使用されるデータを定義する ChartDataSeries

説明

label-data を指定しないと、PieSet は、ラベルや凡例項目を作成できません。使用されるフィールドを判断する方法がないからです。
このデータ系列は、PieSet.set-data 内の要素と同じ RecordSet からのものである必要はありませんが、PieSet.set-data 内のすべての Record は、label-data で参照される RecordField を持っていなければなりません。

PieChart を参照してください。


label-factory (アクセサ)
アクセサ public PieSet.label-factory:PieSet.LabelFactory
セッター public PieSet.label-factory:PieSet.LabelFactory

この PieSet 内の各くさび形ラベル Shape を生成するために使用されるファクトリ プロシージャ。

説明

独自のプロシージャを提供して、この PieSet でのラベルの生成を変更することができます。このプロシージャは、円セットごとに複数回呼び出され、PieSet.set-data の各データ系列内のレコードごとに 1 回呼び出されます。プロシージャの引数については、PieSet.ShapeFactory を参照してください。
形状ファクトリを変更することは、オプション設定が十分でない場合に、グラフの外観を変更するためには、望ましいメソッドです。例えば、形状ファクトリを変更することは、PieSet.wedges の内容を変更するよりもより望ましい方法です。PieSet.wedges の内容は時を選ばず再生成され、その場合は、すべての変更を再適用する必要があります。(ChartLayoutChanged イベントに応じて再適用します。)
PieSet.wedge-labels?false である場合は、このファクトリーは呼び出されないことに注意してください。PieSet.label-set?PieSet.label-dataPieSet.label-value?set-labeldata-label、および value-label の値によっては、それそれが null となることがあります。実際、すべて null となる場合もあります。ラベルを表示したくない場合は、空の ShapeGroup を返すだけです。
既定のラベル ファクトリーは PieSet.default-label-factory です。一般的な方法では、ファクトリー プロシージャを定義して、既定のファクトリーを呼び出してから、結果を変更します。たとえば、Visual.tooltip などのオプションを変更できます。

この例では、PieSet.label-factory を使用して、ラベル String を変更してから、既定のファクトリーを呼び出します。

例: 次の使用: PieSet.label-factory
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{PieChart
    width = 14cm,
    height = 14cm,
    legend-enabled? = false,
    pie-label-radius = -1.5cm,
    color-palette = pastel-chart-color-palette,
    {PieSet
        sample-records,
        "Age",
        label-set? = true,
        label-value? = true,
        label-data =
            {ChartDataSeries sample-records, "Name"},
        label-group = {ShapeGroup color = "black"},
        label-factory =
            {proc {pie-set:PieSet,
                   set-label:#String,
                   data-label:#String,
                   value-label:#String,
                   position:Distance2d,
                   data:ChartDataSeries,
                   record:Record,
                   record-index:int,
                   inner-radius:Distance,
                   outer-radius:Distance,
                   total-radius:Distance,
                   start-angle:Angle,
                   stop-angle:Angle
                  }:Shape
                
                {if-non-null l = set-label then
                    set set-label = "Set: " & l
                }
                {if-non-null l = value-label then
                    set value-label = data.field.caption & ": " & l
                }
                {return
                    {PieSet.default-label-factory
                        pie-set,
                        set-label,
                        data-label,
                        value-label,
                        position,
                        data,
                        record,
                        record-index,
                        inner-radius,
                        outer-radius,
                        total-radius,
                        start-angle,
                        stop-angle
                    }
                }
            }
    }
}


label-group (フィールド)
public constant PieSet.label-group:Shape

生成されたすべてのくさび形ラベル Shape のコンテナとして使用される Shape

説明

このオブジェクトを使用して、ラベルだけに影響するオプションを設定できます。この値の独自の ShapePieSet.default#factory ファクトリーに渡すことができます。


例: PieSet.label-group を使用してのオプションによるラベル外観の変更
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{Canvas
    width = 13cm,
    height = 13cm,
    {PieChart
        width = 10cm,
        height = 10cm,
        {PieSet
            sample-records,
            "Age",
            label-data =
                {ChartDataSeries sample-records, "Name"},
            label-group =
                {ShapeGroup
                    color = FillPattern.red,
                    font-family = "serif",
                    font-style = FontStyle.italic
                }
        }
    }
}


label-set? (アクセサ)
アクセサ public PieSet.label-set?:bool
セッター public PieSet.label-set?:bool

true の場合、くさび形ラベル (生成された場合) にはグラフ化されるデータの 1 つ以上の RecordField.caption 値が含まれます。

注意事項

PieSet.wedge-labels?false である場合、このプロパティの値に関係なく、くさび形ラベルは作成されません。


例: 次の使用: PieSet.label-set?
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{PieChart
    width = 8cm,
    height = 8cm,
    pie-label-radius = -1cm,
    {PieSet
        sample-records,
        "Age",
        label-value? = true,
        label-set? = true
    }
}


label-value? (アクセサ)
アクセサ public PieSet.label-value?:bool
セッター public PieSet.label-value?:bool

true の場合、くさび形ラベル (生成された場合) にはそのくさび形でのデータの値が表示されます。

注意事項

PieSet.wedge-labels?false である場合、このプロパティの値に関係なく、くさび形ラベルは作成されません。


例: 次の使用: PieSet.label-value?
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{PieChart
    width = 8cm,
    height = 8cm,
    pie-label-radius = -1cm,
    {PieSet
        sample-records,
        "Age",
        label-value? = true
    }
}


labels (フィールド)
public constant PieSet.labels:{Array-of Shape} ={new {Array-of Shape}}

この PieSet のくさび形ラベルを表す Shape を含む配列。

説明

この配列は空となるか (くさび形ラベルがない場合)、PieSet.set-data 内のデータに含まれる Record ごとに 1 つの要素を格納します。これらは、PieSet.label-factory によって返された Shape です。
この配列は、単なるインスペクション用で、変更はできません。要素の順序を変更したり、要素を追加または削除したりしないでください。また、その内容は、グラフのレイアウト処理が行われるたびに変更されます。そのため、レイアウト処理が行われて初めてその内容が有効になります。EventHandlerChartLayoutChanged に対して使用し、これらの値が変更された時点で通知を受け取ることができます。
この配列内の Shape オブジェクトの変更は許可されます。ただし、一般的に PieSet.shape-factory にファクトリー プロシージャを提供して同じことを行うほうがはるかに容易です。レイアウトが変更された時点や形状の更新が必要となる時点を考慮する必要がないので、この手法をお勧めします。


legend-enabled? (非ローカル オプション)
public PieSet.legend-enabled?:bool

Chart の凡例作成を有効または無効にするために使用できる bool

説明

このオプションは通常、グラフ自体に設定されます。ただし、その意味は、個別の ChartLayer または PieSet によって解釈されます。つまり、個別のレイヤまたはセットのそれぞれに凡例項目の生成を有効または無効にできます。Chart において false に設定されている場合、レイヤでの値であるか、セットでの値であるかに関係なく、凡例はグラフに含められないことに注意してください。
このオプションを使用して、凡例の作成を禁止し、凡例を外部グラフィカル コンテナに配置する例については、Chart.create-legend を参照してください。

legend-enabled? 定義を代わりに LineLayer 定義の 1 つに移動して、どのように凡例のみに影響するかを確認してください。

例: 次の使用: legend-enabled?
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{RecordGrid height = 6cm, record-source = sample-records}

{LayeredChart
    width = 15cm,
    height = 6cm,
    || Try moving this into one of the LineLayer definitions:
    legend-enabled? = false,
    group-y-axis-data-across-layers? = true,
    {LineLayer
        {ChartDataSeries sample-records, "Age"},
        x-axis-data = {ChartDataSeries sample-records, "Name"}
    },
    {LineLayer
        {ChartDataSeries sample-records, "Wins"}
    }
}


legend-entry-factory (非ローカル オプション)
public PieSet.legend-entry-factory:LegendEntryFactory

Chart の凡例の個別の凡例項目を生成するために使用されるファクトリ プロシージャ。

説明

legend-entry-factory を参照してください。


pie-label-radius (非ローカル オプション)
public PieSet.pie-label-radius:any

PieSet 内でラベルが配置される場合の半径。

説明

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


pie-set-inner-margin (非ローカル オプション)
public PieSet.pie-set-inner-margin:any

PieChart 内の連続した PieSet の間の余白。

説明

pie-set-inner-margin を参照してください。


pie-set-shape-quality (非ローカル オプション)
public PieSet.pie-set-shape-quality:Fraction

PieSet のくさび形の形状を作成する際に必要な品質。

説明

pie-set-shape-quality を参照してください。


pie-set-starting-angle (非ローカル オプション)
public PieSet.pie-set-starting-angle:Angle

PieSet でそのくさび形 Shape の生成が始まる Angle

説明

pie-set-starting-angle を参照してください。


pie-wedge-border-line-style (非ローカル オプション)
public PieSet.pie-wedge-border-line-style:LineStyle

PieSet 内で生成された Shape に適用される LineStyle

説明

pie-wedge-border-line-style を参照してください。


pie-wedge-border-width (非ローカル オプション)
public PieSet.pie-wedge-border-width:any

PieSet 内に生成される Shape に適用される境界幅。

説明

pie-wedge-border-width を参照してください。


set-data (フィールド)
public constant PieSet.set-data:ChartDataSeriesArray ={ChartDataSeriesArray}

この PieSet でプロットされる ChartDataSeries

説明

この配列は通常、PieSet 実装のコンストラクタによって、あるいは PieSet.append-data-series または PieSet.remove-data-series によって初期化されます。ただし、配列の順序を直接変更することも許可されます。これを行った後、PieSet.note-set-data-array-changed を呼び出して、プロット データが再計算されるようにしてください。配列は、他の方法では変更しないでください。

注意事項

複数のデータ系列をプロットできます。基本的には各データ系列は残りに追加されます。そのデータ系列が合計 10 個のRecord を持つ場合、10 個の扇形ができます。
1 つの PieSet 内でプロットされるすべてのデータ系列は同じ RecordSet を原点とする必要があり、同じ Domain、つまり同じ Type を共用する必要があることに注意してください。また、プロットされるすべてのデータは数値である必要があります。


shape-factory (アクセサ)
アクセサ public PieSet.shape-factory:PieSet.ShapeFactory
セッター public PieSet.shape-factory:PieSet.ShapeFactory

この PieSet 内の各くさび形 Shape を生成するために使用されるファクトリ プロシージャ。

説明

独自のプロシージャを提供して、このグラフの生成方法を変更できます。このプロシージャは、円セットごとに複数回呼び出され、PieSet.set-data の各データ系列内のレコードごとに 1 回呼び出されます。プロシージャの引数については、PieSet.ShapeFactory を参照してください。
形状ファクトリを変更することは、オプション設定が十分でない場合に、グラフの外観を変更するためには、望ましいメソッドです。形状ファクトリの変更では、PieSet.wedges の内容を変更することを推奨します。たとえば、PieSet.wedges の内容は、いつでも再生成でき、そのたびに変更を再適用する必要があります。(必要な場合は ChartLayoutChanged イベントに応じて実行できます。)
既定の形状ファクトリは PieSet.default-shape-factory です。一般的な方法では、ファクトリ プロシージャを定義して、既定のファクトリを呼び出してから、結果を変更します。たとえば、Visual.tooltip などのオプションを変更できます。ただし、この手法を用いて系列の色を変更することはお勧めできません。グラフの凡例ではこの変更が表示されないためです。代わりに、Chart.color-palette または PieSet.color-associations を使用してください。

この例では、PieSet.shape-factory を使用してヒントを Shape に追加します。また PieSet.default-shape-factory を使用して、Shape の生成作業を行います。

例: ヒント用の PieSet.shape-factory の使用
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{PieChart
    width = 10cm,
    height = 10cm,
    {PieSet
        sample-records,
        "Age",
        shape-factory =
            {proc {pie-set:PieSet,
                   data:ChartDataSeries,
                   record:Record,
                   record-index:int,
                   inner-radius:Distance,
                   outer-radius:Distance,
                   start-angle:Angle,
                   stop-angle:Angle,
                   max-error:Distance,
                   fill-pattern:FillPattern,
                   border-width:any,
                   border-line-style:LineStyle
                  }:Shape
                
                let shape:Shape =
                    {PieSet.default-shape-factory
                        pie-set,
                        data,
                        record,
                        record-index,
                        inner-radius,
                        outer-radius,
                        start-angle,
                        stop-angle,
                        max-error,
                        fill-pattern,
                        border-width,
                        border-line-style
                    }
                set shape.tooltip =
                    {Tooltip
                        {format "%s: %s years old",
                            record["Name"],
                            record["Age"]
                        },
                        style = TooltipStyle.immediate
                    }
                {return shape}
            }
    }
}
このより高度な例では、PieSet.shape-factory を使用して、通常のくさび型 Shape を一塊のポリゴンで完全に置き換えます。

例: PieSet.shape-factory を使用した異なる Shape の生成
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{PieChart
    width = 10cm,
    height = 10cm,
    {PieSet
        sample-records,
        "Age",
        shape-factory =
            {proc {pie-set:PieSet,
                   data:ChartDataSeries,
                   record:Record,
                   record-index:int,
                   inner-radius:Distance,
                   outer-radius:Distance,
                   start-angle:Angle,
                   stop-angle:Angle,
                   max-error:Distance,
                   fill-pattern:FillPattern,
                   border-width:any,
                   border-line-style:LineStyle
                  }:Shape
                || Generate chunky 5-sided polygons instead of wedges.
                
                let constant inner-point-0:Distance2d =
                    {Distance2d
                        {cos start-angle} * inner-radius,
                        {sin start-angle} * inner-radius
                    }
                let constant inner-point-1:Distance2d =
                    {Distance2d
                        {cos stop-angle} * inner-radius,
                        {sin stop-angle} * inner-radius
                    }
                let constant outer-point-0:Distance2d =
                    {Distance2d
                        {cos start-angle} * outer-radius,
                        {sin start-angle} * outer-radius
                    }
                let constant middle-angle:Angle =
                    0.5 * (start-angle + stop-angle)
                let constant outer-point-1:Distance2d =
                    {Distance2d
                        {cos middle-angle} * outer-radius,
                        {sin middle-angle} * outer-radius
                    }
                let constant outer-point-2:Distance2d =
                    {Distance2d
                        {cos stop-angle} * outer-radius,
                        {sin stop-angle} * outer-radius
                    }
                {return
                    {RegionShape
                        {Region.from-vertices
                            inner-point-0,
                            inner-point-1,
                            outer-point-2,
                            outer-point-1,
                            outer-point-0
                        },
                        color = fill-pattern,
                        border-width = border-width,
                        border-line-style = border-line-style
                    }
                }
            }
    }
}


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

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

説明

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

オーバーライド

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


wedge-group (フィールド)
public constant PieSet.wedge-group:Shape

生成されたすべてのくさび形 Shape のコンテナとして使用される Shape

説明

このオブジェクトを使用して、くさび形だけに影響するオプションを設定できます。この値の独自の ShapePieSet.default#factory ファクトリーに渡すことができます。


例: PieSet.wedge-group を使用してのオプションによるくさび形の外観の更新
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{PieChart
    width = 10cm,
    height = 10cm,
    {PieSet
        sample-records,
        "Age",
        wedge-group =
            {ShapeGroup
                border-color = "navajowhite"
            }
    }
}


wedge-labels? (アクセサ)
アクセサ public PieSet.wedge-labels?:bool
セッター public PieSet.wedge-labels?:bool

false の場合、他のプロパティ値に関係なく、くさび形ラベルは生成されません。

注意事項

これは、全体的ラベルの生成を阻止する際に役立つ場合があります。たとえば、PieSet.label-data を指定すると、このパラメータが false でない限り、常にラベルが生成されます。ただし、PieSet.label-data を除外してラベルを削除すると、凡例を表示することもできなくなります。くさび型ラベルを作成せずに凡例を表示するには、このプロパティを使用します。


例: 次の使用: PieSet.wedge-labels?
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{PieChart
    width = 8cm,
    height = 8cm,
    pie-label-radius = -1cm,
    {PieSet
        sample-records,
        "Age",
        label-value? = true,
        label-set? = true
    }
}


wedges (フィールド)
public constant PieSet.wedges:{Array-of Shape} ={new {Array-of Shape}}

この PieSet のくさび形を表す Shape を含む配列。

説明

この配列には、PieSet.set-data 内のデータ系列にある Record ごとに 1 つの要素が格納されます。これらは、PieSet.shape-factory によって返された Shape です。
この配列は、単なるインスペクション用で、変更はできません。要素の順序を変更したり、要素を追加または削除したりしないでください。また、その内容は、グラフのレイアウト処理が行われるたびに変更されます。そのため、レイアウト処理が行われて初めてその内容が有効になります。EventHandlerChartLayoutChanged に対して使用し、これらの値が変更された時点で通知を受け取ることができます。
この配列内の Shape オブジェクトの変更は許可されます。ただし、一般的に PieSet.shape-factory にファクトリー プロシージャを提供して同じことを行うほうがはるかに容易です。レイアウトが変更された時点や形状の更新が必要となる時点を考慮する必要がないので、この手法をお勧めします。



クラス変数と定数の詳細
LabelFactory (クラス定数)
public constant PieSet.LabelFactory:ProcType ={proc-type {pie-set:PieSet, set-label:#String, data-label:#String, value-label:#String, position:Distance2d, data:ChartDataSeries, record:Record, record-index:int, inner-radius:Distance, outer-radius:Distance, total-radius:Distance, start-angle:Angle, stop-angle:Angle }:Shape }

各くさび形ラベルの PieSet Shape 要素の生成に使用されるファクトリー プロシージャの Type。これは、オプション PieSet.label-factory の型です。

pie-set: Shape 生成が実行される PieSet
set-label: このデータ セットを表わすために使用されるラベル。この値が非 null となるのは、PieSet.label-set?true の場合だけです。
data-label: このデータ セットを表わすために使用されるラベル。これが非 null となるのは、PieSet.label-data が非 null である場合だけです。
value-label: このデータ セットを表わすために使用されるラベル。この値が非 null となるのは、PieSet.label-value?true の場合だけです。
position: ラベルが配置される位置。
data: グラフ作成が実行される ChartDataSeries
record: LabelFactory のこの特定の呼び出しに対応する Record
record-index: RecordSet の先頭からカウントした record のインデックス。
inner-radius: このレコードのくさび形が始まる原点から測定された半径。
outer-radius: このレコードのくさび形が終わる原点から測定された半径。
total-radius: すべての PieSet を含む円グラフ全体の合計半径。
start-angle: このレコードのくさび形が始まる Angle
stop-angle: このレコードのくさび形が終わる Angle

戻り値

円セットに追加される Shape

説明

このタイプの詳細およびその使用例については、PieSet.label-factory を参照してください。


ShapeFactory (クラス定数)
public constant PieSet.ShapeFactory:ProcType ={proc-type {pie-set:PieSet, data:ChartDataSeries, record:Record, record-index:int, inner-radius:Distance, outer-radius:Distance, start-angle:Angle, stop-angle:Angle, max-error:Distance, fill-pattern:FillPattern, border-width:any, border-line-style:LineStyle }:Shape }

各くさび型の PieSet Shape 要素の生成に使用されるファクトリー プロシージャの Type。これは、オプション PieSet.shape-factory の型です。

pie-set: Shape 生成が実行される PieSet
data: グラフ作成が実行される ChartDataSeries
record: ShapeFactory のこの特定の呼び出しに対応する Record
record-index: RecordSet の先頭からカウントした record のインデックス。
inner-radius: くさび形が始まる原点から測定された半径。
outer-radius: くさび形が終わる原点から測定された半径。
start-angle: くさび形が始まる Angle
stop-angle: くさび形が終わる Angle
max-error: pie-set-shape-quality に基づいて計算される最大エラー測定値。独自の Shape 生成ロジックを実装する場合は、このパラメータを無視しても問題はありません。
fill-pattern-for-series: 作成される Shape が入れられる FillPattern
border-width: Shape の生成で使用される境界幅。この値は、pie-wedge-border-width から取得されます。
border-line-style: Shape の生成で使用される境界 LineStyle。この値は、pie-wedge-border-line-style から取得されます。

戻り値

PieSet に追加される Shape

説明

このタイプの詳細およびその使用例については、PieSet.shape-factory を参照してください。



クラス プロシージャ詳細
default-label-factory (クラスプロシージャ)
public {PieSet.default-label-factory
pie-set:PieSet,
set-label:#String,
data-label:#String,
value-label:#String,
position:Distance2d,
data:ChartDataSeries,
record:Record,
record-index:int,
inner-radius:Distance,
outer-radius:Distance,
total-radius:Distance,
start-angle:Angle,
stop-angle:Angle
}:Shape

PieSet.label-factory の既定値。

pie-set: Shape 生成が実行される PieSet
set-label: このデータ セットを表わすために使用されるラベル。この値が非 null となるのは、PieSet.label-set?true の場合だけです。
data-label: このデータ セットを表わすために使用されるラベル。これが非 null となるのは、PieSet.label-data が非 null である場合だけです。
value-label: このデータ セットを表わすために使用されるラベル。この値が非 null となるのは、PieSet.label-value?true の場合だけです。
position: ラベルが配置される位置。
data: グラフ作成が実行される ChartDataSeries
record: LabelFactory のこの特定の呼び出しに対応する Record
record-index: RecordSet の先頭からカウントした record のインデックス。
inner-radius: このレコードのくさび形が始まる原点から測定された半径。
outer-radius: このレコードのくさび形が終わる原点から測定された半径。
total-radius: すべての PieSet を含む円グラフ全体の合計半径。
start-angle: このレコードのくさび形が始まる Angle
stop-angle: このレコードのくさび形が終わる Angle

戻り値

円セットに追加される Shape

説明

このプロシージャは、非 null ラベルのそれぞれに TextShape を作成します。必要な場合、このプロシージャは、重ならないようにそれぞれに十分な距離を保ちながら、作成したそれらを ShapeGroup に配置します。
この型およびその使用例については、PieSet.label-factory を参照してください。


default-shape-factory (クラスプロシージャ)
public {PieSet.default-shape-factory
pie-set:PieSet,
data:ChartDataSeries,
record:Record,
record-index:int,
inner-radius:Distance,
outer-radius:Distance,
start-angle:Angle,
stop-angle:Angle,
max-error:Distance,
fill-pattern:FillPattern,
border-width:any,
border-line-style:LineStyle
}:Shape

PieSet.shape-factory の既定値。

pie-set: Shape 生成が実行される PieSet
data: グラフ作成が実行される ChartDataSeries
record: ShapeFactory のこの特定の呼び出しに対応する Record
record-index: RecordSet の先頭からカウントした record のインデックス。
inner-radius: くさび形が始まる原点から測定された半径。
outer-radius: くさび形が終わる原点から測定された半径。
start-angle: くさび形が始まる Angle
stop-angle: くさび形が終わる Angle
max-error: pie-set-shape-quality に基づいて計算される最大エラー測定値。
fill-pattern-for-series: 作成される Shape が入れられる FillPattern
border-width: Shape の生成で使用される境界幅。この値は、pie-wedge-border-width から取得されます。
border-line-style: Shape の生成で使用される境界 LineStyle。この値は、pie-wedge-border-line-style から取得されます。

戻り値

PieSet に追加される Shape

説明

このプロシージャは、パラメータを使用して適切な形状のポリゴンを生成し、そのポリゴンを Region に変換して、この Region について RegionShape を返します。
このプロシージャおよびその使用例については、PieSet.shape-factory を参照してください。



メソッド詳細
append-color-association (メソッド)
public {PieSet.append-color-association
association:PieColorAssociation
}:void

PieSet.color-associationsPieColorAssociation を追加します。

association: 追加する PieColorAssociation

説明

このメソッドは、特定の Record がこの PieSet 内で特定の色でグラフ化されるようにできます。詳細と例については、PieSet.color-associations を参照してください。

注意事項

同じデータ フィールドと値の関連付けが既に存在する場合は、エラーが発生します。


append-data-series (メソッド)
public {PieSet.append-data-series data:ChartDataSeries}:void

グラフ作成される PieSet.set-dataChartDataSeries を追加します。

data: 追加される ChartDataSeries

説明

詳細については、PieSet.set-data を参照してください。


compute-data-abs-sum (メソッド)
public {PieSet.compute-data-abs-sum}:any

この PieSet 内のデータの絶対値の合計を計算します。

戻り値

PieSet.set-data によって使用される同じデータの Type における合計。

説明

この値は、各データ ポイントが表す全体の割合を決定するために使用されます。


create-legend-entries (メソッド)
public {PieSet.create-legend-entries
container:{Array-of Graphic},
entries-already-created:PieLegendKeySet
}:void

この PieSet に必要な凡例項目を作成します。

container: 作成された項目の追加先の配列。
entries-already-created: 既に作成されている凡例項目を追跡するために使用される PieLegendKeySetRecordRecordField、および FillPattern の項目が既に存在する場合は、このメソッドはそれらを再作成しません。このメソッドがそれらを作成する場合は、それらをセットに追加します。

説明

このメソッドをオーバーライドすると、凡例生成を変更するのに役立ちます。ただし、PieSet.legend-entry-factory を使用して、ファクトリ プロシージャを提供するのがより簡単で一般的です。このファクトリ プロシージャは、まだ存在しないそれぞれの凡例項目に対して PieSet.create-legend-entries によって呼び出されます。

注意事項

データがラベルに関連付けられない限り、凡例項目は作成できません。PieSet.label-data を参照してください。


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

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

説明

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


draw (メソッド)
public {PieSet.draw r2d:Renderer2d}:void

このオブジェクトの可視表現を描画します。

renderer2d: このオブジェクトを使用してそれ自身を描画する Renderer2d

オーバーライド

Shape をサブクラス化する場合は、このメソッドをオーバーライドする必要があります。


estimate-bounds (メソッド)
public {PieSet.estimate-bounds
pie-set-index:int,
inner-radius:Distance,
outer-radius:Distance,
total-radius:Distance,
dest:GRect = {GRect.empty}
}:GRect

この PieSet に必要な境界を見積もります。

pie-set-index: PieChart.sets 内のこの PieSet のインデックス。
inner-radius: この PieSet の内径。
outer-radius: この PieSet の外径。
total-radius: すべての PieSet の合計半径。
dest: データを返すために使用されるオプションの GRect オブジェクト。

戻り値

境界を含む GRect オブジェクト。これは、常に dest と同じオブジェクトになります。この GRect は正しい形式である必要があります。つまり、次の条件が true でなければなりません。 -dest.lextent <= dest.rextent and -dest.ascent <= dest.descent

説明

これは PieChart.estimate-margins から呼び出されます。PieSet の実装では、境界を見積もるために必要なあらゆる操作を実行する必要があります。通常これには、境界を決定するために少なくともいくつかのラベル生成が必要です。
返された GRect は必ずしも正しい必要はありません。ただし、これは円セットとラベルに割り当てられるスペース量の決定に使用されるため、プロット エリアとラベルへのスペースの割り当て量が多すぎたり少なすぎたりすると、エラーが発生する可能性があります。

注意事項

既定の実装では、PieSet.update-layout により、フル レイアウト操作だけを実行します。より少ない操作でこれを最適化する実装を推奨します。StandardPieSet ではそのような最適化を実装するため、PieSet をサブクラス化する場合はこれだけを考慮します。


get-data-series-from-shape (メソッド)
public abstract {PieSet.get-data-series-from-shape
shape:Shape
}:#ChartDataSeries

Shape に関連した ChartDataSeries を決定します (ある場合)。

shape: 検索する Shape

説明

PieSet.set-data の要素を表すために、Shape がこの PieSet によって生成された場合は、このメソッドでその要素が判別され、該当するデータ系列が返されます。その他の場合は、null を返します。
PieSet をサブクラス化しようとする場合は、このメソッドを実装する必要があります。これは通常、生成された Shape のセットを追跡し、渡される Shape が既知の Shape のメンバであるかどうかを決定することにより実行されます。


get-fill-pattern-for-record (メソッド)
public {PieSet.get-fill-pattern-for-record
record:Record,
record-index:int
}:FillPattern

この PieSetRecord の 1 つのグラフ作成で使用する FillPattern を取得します。

record: グラフ化される Record
record-index: RecordSet の先頭からカウントした record のインデックス。

戻り値

使用される FillPattern

説明

このメソッドは、PieSet.color-associations および PieChart とやりとりを行って、このデータ系列に適切な色を決定します。これは、PieSet の実装および凡例ファクトリーで使用され、各 Record で使用される色を決定します。


get-label-position (メソッド)
public {PieSet.get-label-position
data:ChartDataSeries,
record:Record,
record-index:int,
inner-radius:Distance,
outer-radius:Distance,
total-radius:Distance,
start-angle:Angle,
stop-angle:Angle
}:Distance2d

くさび形ラベルの位置を計算します。

data: グラフ作成が実行される ChartDataSeries
record: LabelFactory のこの特定の呼び出しに対応する Record
record-index: RecordSet の先頭からカウントした record のインデックス。
inner-radius: このレコードのくさび形が始まる原点から測定された半径。
outer-radius: このレコードのくさび形が終わる原点から測定された半径。
total-radius: すべての PieSet を含む円グラフ全体の合計半径。
start-angle: このレコードのくさび形が始まる Angle
stop-angle: このレコードのくさび形が終わる Angle

戻り値

この PieSet の座標系内の点。


get-outside-margin (メソッド)
public {PieSet.get-outside-margin}:Distance

このグラフでその一番外側からグラフの境界または凡例までの必要スペースを決定します。

説明

このメソッドの標準実装では、くさび形の境界に合わせるために十分なスペースが必要です。さらにスペースが必要な場合、このメソッドをオーバーライドできます。


get-own-bounds (メソッド)
public {PieSet.get-own-bounds dest:GRect = {GRect.empty}}:GRect

ローカル座標系におけるこの Shape の四角形のレンダリング境界を計算します。

dest: データを返すために使用されるオプションの GRect オブジェクト。

戻り値

境界を含む GRect オブジェクト。これは、常に dest と同じオブジェクトになります。この GRect は正しい形式である必要があります。つまり、次の条件が true でなければなりません。 -dest.lextent <= dest.rextent and -dest.ascent <= dest.descent

説明

返された境界は、このオブジェクトによって描画されるすべてのピクセルをカバーしている必要があります。ただし、このオブジェクトのすべての子を含んでいません

注意事項

レンダリング境界 (get-own-bounds) とレイアウト境界 (get-own-layout-bounds) は、通常似ていますが、同じではありません。特に、レンダリング境界は非常に包括的ですが、レイアウト境界はそれぞれが整然と隣接するため、Shape を厳密に記述しなければならなりません。

オーバーライド

Shape をサブクラス化する場合は、このメソッドをオーバーライドする必要があります。データを返すには、dest パラメータを使用する必要があります。


get-record-at-point (メソッド)
public abstract {PieSet.get-record-at-point}:(r:#Record, data:#ChartDataSeries, shape:#Shape)

指定の位置に RecordChartDataSeries、および Shape があれば、それらを確認してください。

x: この PieSet の相対 X 座標。
y: この PieSet の相対 Y 座標。

戻り値

ポイントでの RecordChartDataSeries、および Shape。この位置に Shape が配置されたデータ系列がない場合、すべての値は null になります。そうでない場合は、すべて非 null になります。

説明

渡されるポイントは、この PieSet の座標系に対して相対的である必要があります。この PieSetShape.transformation を変更していない限り、PieSet の原点はプロット エリアの中央になります。Chart 相対座標のプロット エリア相対座標への変換を含む例については、次を参照してください。
このメソッドの可能な代替方法の 1 つとして、PieSet.shape-factory を使用して Shape 生成をオーバーライドし、必要とするデータをすべて各形状の Visual.user-data オプションに格納することができます。次に指定ポイントでこのデータを取得することは、ShapeContainerBase.get-child-at-point を呼び出して、返される Shapeuser-data 値を検証することと同様に簡単になります。

注意事項

これに関するその他の手法については、以下を参照してください。

マウス ポインタをこの円グラフ内の各くさび形上で移動し、それぞれに関する情報を表示します。この情報は、PieSet.get-record-at-point を使用して実行時に検出されます。

例: 次の使用: PieSet.get-record-at-point
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{let display:TextDisplay = {TextDisplay}}

{VBox
    hstretch? = true,
    display,
    {PieChart
        width = 12cm,
        height = 8cm,
        {PieSet
            sample-records,
            "Age"
        },
        {on e:PointerMotion at chart:PieChart do
            || Transform coordinates from chart into one of its
            || children -- the plot area:
            let constant point-in-plot-area:Distance2d =
                {chart.plot-area.transformation.inverse-transform-point
                    {Distance2d e.x, e.y}
                }

            let constant pie-set:PieSet = chart.sets[0]
            let (record:#Record, data:#ChartDataSeries, shape:#Shape) =
                {pie-set.get-record-at-point
                    point-in-plot-area.x,
                    point-in-plot-area.y
                }

            set display.value =
                {if-non-null record then
                    {format
                        "Name: %s, points: %s, wins: %s, age: %s   " &
                        "(from series %s)",
                        record["Name"],
                        record["Points"],
                        record["Wins"],
                        record["Age"],
                        data.field.caption
                    }
                 else
                    ""
                }
        }
    }
}


get-wedge-size (メソッド)
public {PieSet.get-wedge-size value:any}:Fraction

この PieSet 内のすべての値の合計に対する 1 つの値の割合を決定します。

value: 使用する値。この値は、PieSet.set-data 内のデータと同じ Type をもつ必要があります。

戻り値

valuePieSet.compute-data-abs-sum との比率。


handle-observer-message (メソッド)
protected {PieSet.handle-observer-message
sender:Observable,
message:any
}:void

監視対象のオブジェクトがメッセージを送信するときにこのメソッドを呼び出します。Observer はこのメソッドを実装して、変更が発生したときに処理を実行する必要があります。

sender: 変更があった Observable オブジェクトです。
message: これは、Observer からの変更に関する詳細情報が含まれています。詳細情報がない場合は NULL になります。


non-keyword-init-arg (メソッド)
public {PieSet.non-keyword-init-arg a:any}:void

InitRestArgParser.process-rest-args で非キーワード引数が検出されると、呼び出されます。

説明

Visual によるこのメソッドの実装では、最初にこのメソッドへの入力値をオブジェクトに関連するメタデータとして解釈を試みます。たとえば、オブジェクトに関連する EventHandlerDataBinding を認識してから、これらをアタッチするための適切な手順を実行することになります。
メタデータとして認識不可能な入力値は、Visual に追加される内容であると解釈され、Visual.add-from-init-args に渡されます。

オーバーライド

オブジェクトに関連付けられた追加のメタデータも受け入れるようにするには、このメソッドをオーバーライドします。実装では通常、解釈に失敗した入力値でスーパー実装が呼び出されるようにします。


note-color-associations-changed (メソッド)
public {PieSet.note-color-associations-changed}:void

この PieSetPieSet.color-associations の内容が変更されたことを通知します。

説明

任意の方法による PieSet.color-associations の直接操作が許可されます。その内容が変更された時に、このメソッドを呼び出すだけです。

この例は、グラフ作成のための色としての Pixmap の使用法を示すとともに、PieSet.note-color-associations-changed の使用法を示しています。

例: 実行時の PieSet の色関連付けの変更
{import * from CURL.GUI.CHARTS}
{import * from CURL.GRAPHICS.IMAGEFILTER}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{let chart:PieChart =
    {PieChart
        width = 8cm,
        height = 8cm,
        {PieSet
            sample-records,
            "Points",
            {PieColorAssociation
                "Name",
                "Nova",
                FillPattern.black
            },
            wedge-labels? = false,
            label-data = {ChartDataSeries sample-records, "Name"}
        }
    }
}

{value chart}

|| Scale the pixmap to a reasonable size:
{let constant pixmap:Pixmap =
    {filter-pixmap
        scale,
        {Pixmap.from-url
            {url "curl://install/docs/default/images/curtain.jpg"}
        },
        scale = 25%,
        filter-mode = "linear"
    }
}

Color association:

{DropdownList
    "black",
    "steelblue",
    "purple",
    "orange",
    pixmap,
    list-item-creation-proc =
        {proc {val:any}:ListItem
            {return
                {ListValueItem
                    value = val,
                    {type-switch val
                     case p:Pixmap do
                        {RectangleGraphic
                            fill-color = val,
                            width = p.width * 1px,
                            height = p.height * 1px
                        }
                     else
                        {RectangleGraphic
                            fill-color = val,
                            width = 50pt,
                            height = 10pt
                        }
                    }
                }
            }
        },
    {on ValueChanged at ddl:DropdownList do
        let constant s:PieSet = chart.sets[0]
        set s.color-associations[0] =
            {PieColorAssociation
                "Name",
                "Nova",
                ddl.value asa FillPattern
            }
        {s.note-color-associations-changed}
    },
    value="black"
}


note-set-data-array-changed (メソッド)
public {PieSet.note-set-data-array-changed}:void

この PieSetPieSet.set-data の順序が変更されたことを通知します。

説明

PieSet.set-data は、既存の要素の順序を変更する場合にのみ直接操作できます。これを行う場合、このメソッドを呼び出して、PieSet がその要素を再生成できるようにする必要があります。


remove-color-association (メソッド)
public {PieSet.remove-color-association
association:PieColorAssociation
}:void

PieColorAssociationPieSet.color-associations から削除します。

association: 削除する PieColorAssociationassociation は、PieSet.color-associations のメンバである必要があります。そうでない場合、エラーが発生します。

説明

色の関連付けの詳細およびその使用例については、PieSet.color-associations を参照してください。


remove-data-series (メソッド)
public {PieSet.remove-data-series data:ChartDataSeries}:void

ChartDataSeriesPieSet.set-data から削除します。

data: 削除される ChartDataSeries。このオブジェクトは、PieSet.set-data のメンバである必要があります。そうでない場合、エラーが発生します。

説明

詳細については、PieSet.set-data を参照してください。


self-contains-point? (メソッド)
public {PieSet.self-contains-point? x:Distance, y:Distance}:bool

ポイントがこの Shape 内にあるかどうかを判定します。

x: 点の X 座標。
y: 点の Y 座標。

戻り値

この Shape が (xy) を含む場合は、true

説明

ポイントは、このオブジェクトのローカル座標系にあります。このメソッドは、その子を考慮しません。

オーバーライド

Shape をサブクラス化する場合は、このメソッドをオーバーライドする必要があります。このメソッドは、PointerMotion などのマウス イベントをこのオブジェクトにいつ送信するかなどを決定します。
通常は、このメソッドを実装して、ポイントが形状の境界内にあるかどうかだけでなく、ポイントが形状のレンダリングされたプリミティブ内にあるどうかを確認する必要があります。このメソッドは必要なメトリックを使用して自在に実装できます。


self-intersects-polygon? (メソッド)
public {PieSet.self-intersects-polygon?}:bool

ポリゴンがこの Shape と交差するかどうかを判定します。

polygon: この形状のローカル座標空間にポリゴンを記述するポイント セットを含むオブジェクト。このポリゴンは必ず凸型であり、反時計回りのワインディング順に従います。

説明

このメソッドは、ポイントではなく領域を処理する点を除けば、Shape.self-contains-point? とよく似ています。主に領域ベースの選択をサポートするために使用されますが、直接呼び出すこともできます。

オーバーライド

Shape をサブクラス化する場合は、このメソッドをオーバーライドする必要があります。子を考慮する必要はありません。
通常は、このメソッドを実装して、領域が形状の境界内にあるかどうかだけでなく、領域が形状のレンダリングされたプリミティブと交差するかどうかを確認する必要があります。このメソッドは、必要なメトリックを使用して自在に実装できます。このメソッドの実装が Shape.self-contains-point? と調和しない場合は、このオブジェクトを選択すると予期しない結果になります。
選択機能を使用しない場合は、このメソッドを単純に false を返すように実装できます。


update-layout (メソッド)
public abstract {PieSet.update-layout
pie-set-index:int,
inner-radius:Distance,
outer-radius:Distance,
total-radius:Distance
}:void

この PieSet の内部レイアウトを更新します。

pie-set-index: PieChart.sets 内のこの PieSet のインデックス。
inner-radius: この PieSet の内径。
outer-radius: この PieSet の外径。
total-radius: すべての PieSet の合計半径。

説明

これは、PieChart.update-layout から呼び出されます。PieSet の実装では、このメソッドを使用して、Shape を再生成します。PieSet をサブクラス化する場合は、このメソッドをオーバーライドして、データを表し、そのデータを PieSet.add を使用して円セットに追加する Shape を生成する必要があります。