(クラス)
PieChart の環または円を表すクラス。
説明
PieSet オブジェクトは、プロットされるデータおよびそのプロット方法を定義するために使用します。サブクラス化が可能であるように設計されているので、独自のグラフ スタイルを作成できます。ただし、標準実装
StandardPieSet によってほとんどの要件は満たされます。
注意事項
Shape オブジェクトを
PieSet 自体に追加することによって、グラフに注釈を付けることは一般的です。
PieSet の原点は、プロット エリアの中央に位置する
PiePlotArea のそれと同じです。
PieSet は、
PieSet.update-layout 時に形状の子をクリアします。これは、この実装に追加されたオブジェクトがすべてレイアウト処理中に削除されることを意味します。
次の非ローカル オプションは、特に、PieSet に適用します。
(この一覧では、
PieSet の子に適用するオプションは含まれていないことに注意してください。たとえば、
color は、
TextShape によって使用されますが、これは、ラベルに影響することを意味します。)
このオブジェクトは、"PieSet"のスタイル ルールを記述することによってスタイル化することが出来ます。
例
例:
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"
}
}
}
}
}
}
| |
コンストラクタ protected | {PieSet.default} |
ファクトリ public | {PieSet.default}:PieSet |
フィールド public-get private-set PieSet.chart:#
PieChart
フィールド public constant PieSet.color-associations:{
Array-of PieColorAssociation} ={new {Array-of PieColorAssociation}}
フィールド public constant PieSet.label-group:
Shape
アクセサ public PieSet.label-set?:
bool セッター public PieSet.label-set?:
bool
label-value?: | true の場合、くさび形ラベル (生成された場合) にはそのくさび形でのデータの値が表示されます。 |
アクセサ public PieSet.label-value?:
bool セッター public PieSet.label-value?:
bool
フィールド public constant PieSet.labels:{
Array-of Shape} ={new {Array-of Shape}}
非ローカル オプション public PieSet.legend-enabled?:
bool
非ローカル オプション public PieSet.pie-label-radius:
any
非ローカル オプション public PieSet.pie-set-inner-margin:
any
非ローカル オプション public PieSet.pie-set-shape-quality:
Fraction
非ローカル オプション public PieSet.pie-set-starting-angle:
Angle
非ローカル オプション public PieSet.pie-wedge-border-line-style:
LineStyle
非ローカル オプション public PieSet.pie-wedge-border-width:
any
アクセサ public PieSet.style-element:
String
フィールド public constant PieSet.wedge-group:
Shape
アクセサ public PieSet.wedge-labels?:
bool セッター public PieSet.wedge-labels?:
bool
フィールド 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? プロパティ 継承 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
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
}
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
}
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 |
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 |
public | {PieSet.append-color-association}:void |
public | {PieSet.compute-data-abs-sum}:any |
public | {PieSet.create-legend-entries}:void |
public | {PieSet.detach}:void |
draw: | このオブジェクトの可視表現を描画します。 |
public | {PieSet.estimate-bounds}:GRect |
public | {PieSet.get-fill-pattern-for-record}:FillPattern |
public | {PieSet.get-outside-margin}:Distance |
public | {PieSet.get-own-bounds dest:GRect = {GRect.empty}}:GRect |
protected | {PieSet.handle-observer-message}:void |
public | {PieSet.non-keyword-init-arg a:any}:void |
public | {PieSet.note-color-associations-changed}:void |
public | {PieSet.note-set-data-array-changed}:void |
public | {PieSet.remove-color-association}:void |
public | {PieSet.self-intersects-polygon?}:bool |
public abstract | {PieSet.update-layout}: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 メソッド 継承 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 メソッド 継承 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 メソッド 継承 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
(コンストラクタ)
protected | {PieSet.default} |
新規の PieSet を初期化します。
説明
PieSet は抽象クラスであるので、このコンストラクタはサブクラスによってのみ使用されます。
PieSet をインスタンス化する標準的な方法、およびこのコンストラクタが受け取るパラメータについては、
PieSet.default#factory を参照してください。
(ファクトリ)
public | {PieSet.default}:PieSet |
新規の PieSet を作成します。
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 を参照してください。
...:
... を使用して、次の 2 つのいずれかの方法でプロットされるデータ系列を初期化することもできます。
プロットされるすべてのデータは数値である必要があることに注意してください。
説明
これはコンストラクタではなく、ファクトリーです。
PieSet が抽象クラスであるためです。このファクトリーは、標準実装
StandardPieSet のインスタンスを作成して、返します。この情報は、
PieSet または
StandardPieSet をサブクラス化したい場合にだけ必要です。
例
(フィールド)
public-get private-set PieSet.chart:#
PieChart この PieSet を含む PieChart (ある場合)。
説明
このプロパティは、PieSet が PieChart に追加されるとすぐに設定されます。
(フィールド)
public constant PieSet.color-associations:{
Array-of PieColorAssociation} ={new {Array-of PieColorAssociation}}
特定の色を特定の Record に関連付けるマッピングを提供します。
説明
PieColorAssociation を使用して、自動カラー選択プロセスをオーバーライドできます。ほとんどのアプリケーションは、すべてのセットに使用されるカラー パレットをオーバーライドするために、
Chart.color-palette を使用します。ただし、何かの理由で、個別の円セットでこれを制御したい場合、あるいは
PieSet 間で異なる方法でこれを制御したい場合は、使用するメカニズムは
PieSet.color-associations です。
例
この例では、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"}
}
}
| |
(アクセサ)
くさび形ラベルと凡例項目に使用されるデータを定義する ChartDataSeries。
説明
label-data を指定しないと、PieSet は、ラベルや凡例項目を作成できません。使用されるフィールドを判断する方法がないからです。
例
(アクセサ)
この PieSet 内の各くさび形ラベル Shape を生成するために使用されるファクトリ プロシージャ。
説明
形状ファクトリを変更することは、オプション設定が十分でない場合に、グラフの外観を変更するためには、望ましいメソッドです。例えば、形状ファクトリを変更することは、
PieSet.wedges の内容を変更するよりもより望ましい方法です。
PieSet.wedges の内容は時を選ばず再生成され、その場合は、すべての変更を再適用する必要があります。(
ChartLayoutChanged イベントに応じて再適用します。)
例
この例では、
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
}
}
}
}
}
| |
(フィールド)
public constant PieSet.label-group:
Shape 生成されたすべてのくさび形ラベル Shape のコンテナとして使用される Shape。
説明
例
例:
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
}
}
}
}
| |
(アクセサ)
アクセサ public PieSet.label-set?:
bool セッター public PieSet.label-set?:
bool true の場合、くさび形ラベル (生成された場合) にはグラフ化されるデータの 1 つ以上の RecordField.caption 値が含まれます。
注意事項
例
例:
次の使用: 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
}
}
| |
(アクセサ)
アクセサ public PieSet.label-value?:
bool セッター public PieSet.label-value?:
bool true の場合、くさび形ラベル (生成された場合) にはそのくさび形でのデータの値が表示されます。
注意事項
例
例:
次の使用: 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
}
}
| |
(フィールド)
public constant PieSet.labels:{
Array-of Shape} ={new {Array-of Shape}}
この PieSet のくさび形ラベルを表す Shape を含む配列。
説明
この配列は、単なるインスペクション用で、変更はできません。要素の順序を変更したり、要素を追加または削除したりしないでください。また、その内容は、グラフのレイアウト処理が行われるたびに変更されます。そのため、レイアウト処理が行われて初めてその内容が有効になります。
EventHandler を
ChartLayoutChanged に対して使用し、これらの値が変更された時点で通知を受け取ることができます。
この配列内の
Shape オブジェクトの変更は許可されます。ただし、一般的に
PieSet.shape-factory にファクトリー プロシージャを提供して同じことを行うほうがはるかに容易です。レイアウトが変更された時点や形状の更新が必要となる時点を考慮する必要がないので、この手法をお勧めします。
(非ローカル オプション)
public PieSet.legend-enabled?:
bool Chart の凡例作成を有効または無効にするために使用できる bool。
説明
このオプションは通常、グラフ自体に設定されます。ただし、その意味は、個別の
ChartLayer または
PieSet によって解釈されます。つまり、個別のレイヤまたはセットのそれぞれに凡例項目の生成を有効または無効にできます。
Chart において
false に設定されている場合、レイヤでの値であるか、セットでの値であるかに関係なく、凡例はグラフに含められないことに注意してください。
例
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"}
}
}
| |
(非ローカル オプション)
Chart の凡例の個別の凡例項目を生成するために使用されるファクトリ プロシージャ。
説明
(非ローカル オプション)
public PieSet.pie-label-radius:
any
(非ローカル オプション)
public PieSet.pie-set-inner-margin:
any
(非ローカル オプション)
public PieSet.pie-set-shape-quality:
Fraction PieSet のくさび形の形状を作成する際に必要な品質。
説明
(非ローカル オプション)
public PieSet.pie-set-starting-angle:
Angle
(非ローカル オプション)
public PieSet.pie-wedge-border-line-style:
LineStyle
(非ローカル オプション)
public PieSet.pie-wedge-border-width:
any
(フィールド)
この PieSet でプロットされる ChartDataSeries。
説明
注意事項
複数のデータ系列をプロットできます。基本的には各データ系列は残りに追加されます。そのデータ系列が合計 10 個の
Record を持つ場合、10 個の扇形ができます。
1 つの
PieSet 内でプロットされるすべてのデータ系列は同じ
RecordSet を原点とする必要があり、同じ
Domain、つまり同じ
Type を共用する必要があることに注意してください。また、プロットされるすべてのデータは数値である必要があります。
(アクセサ)
この PieSet 内の各くさび形 Shape を生成するために使用されるファクトリ プロシージャ。
説明
形状ファクトリを変更することは、オプション設定が十分でない場合に、グラフの外観を変更するためには、望ましいメソッドです。形状ファクトリの変更では、
PieSet.wedges の内容を変更することを推奨します。たとえば、
PieSet.wedges の内容は、いつでも再生成でき、そのたびに変更を再適用する必要があります。(必要な場合は
ChartLayoutChanged イベントに応じて実行できます。)
例
例:
ヒント用の 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
}
}
}
}
}
| |
(アクセサ)
アクセサ public PieSet.style-element:
String スタイリングの目的のための、この Visual の "要素" や "型" です。
説明
オーバーライド
Visual のサブクラスのスタイルが他のオブジェクトと異なる場合、このゲッターは適切な文字列を返すようにオーバーライドされる必要があります。 慣例では,この文字列はクラス名または、オブジェクトを生成するマークアップの名前です。
オーバーライドでは、空の文字列でないかぎり、self._style-elementを返さなければなりません。
導入:
バージョン 6.0
(フィールド)
public constant PieSet.wedge-group:
Shape 生成されたすべてのくさび形 Shape のコンテナとして使用される Shape。
説明
例
例:
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"
}
}
}
| |
(アクセサ)
アクセサ 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
}
}
| |
(フィールド)
public constant PieSet.wedges:{
Array-of Shape} ={new {Array-of Shape}}
この PieSet のくさび形を表す Shape を含む配列。
説明
この配列は、単なるインスペクション用で、変更はできません。要素の順序を変更したり、要素を追加または削除したりしないでください。また、その内容は、グラフのレイアウト処理が行われるたびに変更されます。そのため、レイアウト処理が行われて初めてその内容が有効になります。
EventHandler を
ChartLayoutChanged に対して使用し、これらの値が変更された時点で通知を受け取ることができます。
この配列内の
Shape オブジェクトの変更は許可されます。ただし、一般的に
PieSet.shape-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
}
各くさび形ラベルの PieSet Shape 要素の生成に使用されるファクトリー プロシージャの Type。これは、オプション PieSet.label-factory の型です。
pie-set:
Shape 生成が実行される
PieSet。
set-label: このデータ セットを表わすために使用されるラベル。この値が非 null となるのは、
PieSet.label-set? が
true の場合だけです。
data-label: このデータ セットを表わすために使用されるラベル。これが非 null となるのは、
PieSet.label-data が非 null である場合だけです。
position: ラベルが配置される位置。
record:
LabelFactory のこの特定の呼び出しに対応する
Record。
record-index:
RecordSet の先頭からカウントした
record のインデックス。
inner-radius: このレコードのくさび形が始まる原点から測定された半径。
outer-radius: このレコードのくさび形が終わる原点から測定された半径。
total-radius: すべての PieSet を含む円グラフ全体の合計半径。
start-angle: このレコードのくさび形が始まる
Angle。
stop-angle: このレコードのくさび形が終わる
Angle。
戻り値
説明
(クラス定数)
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。
record:
ShapeFactory のこの特定の呼び出しに対応する
Record。
record-index:
RecordSet の先頭からカウントした
record のインデックス。
inner-radius: くさび形が始まる原点から測定された半径。
outer-radius: くさび形が終わる原点から測定された半径。
start-angle: くさび形が始まる
Angle。
stop-angle: くさび形が終わる
Angle。
fill-pattern-for-series: 作成される
Shape が入れられる
FillPattern。
戻り値
説明
(クラスプロシージャ)
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 である場合だけです。
position: ラベルが配置される位置。
record:
LabelFactory のこの特定の呼び出しに対応する
Record。
record-index:
RecordSet の先頭からカウントした
record のインデックス。
inner-radius: このレコードのくさび形が始まる原点から測定された半径。
outer-radius: このレコードのくさび形が終わる原点から測定された半径。
total-radius: すべての PieSet を含む円グラフ全体の合計半径。
start-angle: このレコードのくさび形が始まる
Angle。
stop-angle: このレコードのくさび形が終わる
Angle。
戻り値
説明
このプロシージャは、非 null ラベルのそれぞれに
TextShape を作成します。必要な場合、このプロシージャは、重ならないようにそれぞれに十分な距離を保ちながら、作成したそれらを
ShapeGroup に配置します。
(クラスプロシージャ)
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。
record:
ShapeFactory のこの特定の呼び出しに対応する
Record。
record-index:
RecordSet の先頭からカウントした
record のインデックス。
inner-radius: くさび形が始まる原点から測定された半径。
outer-radius: くさび形が終わる原点から測定された半径。
start-angle: くさび形が始まる
Angle。
stop-angle: くさび形が終わる
Angle。
fill-pattern-for-series: 作成される
Shape が入れられる
FillPattern。
戻り値
説明
このプロシージャは、パラメータを使用して適切な形状のポリゴンを生成し、そのポリゴンを
Region に変換して、この
Region について
RegionShape を返します。
(メソッド)
public | {PieSet.append-color-association}:void |
(メソッド)
グラフ作成される PieSet.set-data に ChartDataSeries を追加します。
data: 追加される ChartDataSeries。
説明
(メソッド)
public | {PieSet.compute-data-abs-sum}:any |
この PieSet 内のデータの絶対値の合計を計算します。
戻り値
説明
この値は、各データ ポイントが表す全体の割合を決定するために使用されます。
(メソッド)
public | {PieSet.create-legend-entries}:void |
この PieSet に必要な凡例項目を作成します。
container: 作成された項目の追加先の配列。
説明
このメソッドをオーバーライドすると、凡例生成を変更するのに役立ちます。ただし、
PieSet.legend-entry-factory を使用して、ファクトリ プロシージャを提供するのがより簡単で一般的です。このファクトリ プロシージャは、まだ存在しないそれぞれの凡例項目に対して
PieSet.create-legend-entries によって呼び出されます。
注意事項
(メソッド)
public | {PieSet.detach}:void |
この形状を親から切り離します。
説明
親を持たない形状に対して detach を呼び出しても効果はありません。
(メソッド)
このオブジェクトの可視表現を描画します。
オーバーライド
Shape をサブクラス化する場合は、このメソッドをオーバーライドする必要があります。
(メソッド)
public | {PieSet.estimate-bounds}:GRect |
この 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
説明
返された GRect は必ずしも正しい必要はありません。ただし、これは円セットとラベルに割り当てられるスペース量の決定に使用されるため、プロット エリアとラベルへのスペースの割り当て量が多すぎたり少なすぎたりすると、エラーが発生する可能性があります。
注意事項
(メソッド)
Shape に関連した ChartDataSeries を決定します (ある場合)。
shape: 検索する Shape。
説明
PieSet.set-data の要素を表すために、
Shape がこの
PieSet によって生成された場合は、このメソッドでその要素が判別され、該当するデータ系列が返されます。その他の場合は、null を返します。
PieSet をサブクラス化しようとする場合は、このメソッドを実装する必要があります。これは通常、生成された Shape のセットを追跡し、渡される Shape が既知の Shape のメンバであるかどうかを決定することにより実行されます。
(メソッド)
public | {PieSet.get-fill-pattern-for-record}:FillPattern |
この PieSet の Record の 1 つのグラフ作成で使用する FillPattern を取得します。
record-index:
RecordSet の先頭からカウントした
record のインデックス。
戻り値
使用される FillPattern。
説明
(メソッド)
くさび形ラベルの位置を計算します。
record:
LabelFactory のこの特定の呼び出しに対応する
Record。
record-index:
RecordSet の先頭からカウントした
record のインデックス。
inner-radius: このレコードのくさび形が始まる原点から測定された半径。
outer-radius: このレコードのくさび形が終わる原点から測定された半径。
total-radius: すべての PieSet を含む円グラフ全体の合計半径。
start-angle: このレコードのくさび形が始まる
Angle。
stop-angle: このレコードのくさび形が終わる
Angle。
戻り値
この PieSet の座標系内の点。
(メソッド)
public | {PieSet.get-outside-margin}:Distance |
このグラフでその一番外側からグラフの境界または凡例までの必要スペースを決定します。
説明
このメソッドの標準実装では、くさび形の境界に合わせるために十分なスペースが必要です。さらにスペースが必要な場合、このメソッドをオーバーライドできます。
(メソッド)
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
説明
返された境界は、このオブジェクトによって描画されるすべてのピクセルをカバーしている必要があります。ただし、このオブジェクトのすべての子を含んでいません。
注意事項
オーバーライド
Shape をサブクラス化する場合は、このメソッドをオーバーライドする必要があります。データを返すには、dest パラメータを使用する必要があります。
(メソッド)
指定の位置に Record、ChartDataSeries、および Shape があれば、それらを確認してください。
x: この PieSet の相対 X 座標。
y: この PieSet の相対 Y 座標。
戻り値
ポイントでの Record、ChartDataSeries、および Shape。この位置に Shape が配置されたデータ系列がない場合、すべての値は null になります。そうでない場合は、すべて非 null になります。
説明
渡されるポイントは、この
PieSet の座標系に対して相対的である必要があります。この
PieSet の
Shape.transformation を変更していない限り、
PieSet の原点はプロット エリアの中央になります。
Chart 相対座標のプロット エリア相対座標への変換を含む例については、次を参照してください。
注意事項
これに関するその他の手法については、以下を参照してください。
例
マウス ポインタをこの円グラフ内の各くさび形上で移動し、それぞれに関する情報を表示します。この情報は、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
""
}
}
}
}
| |
(メソッド)
この PieSet 内のすべての値の合計に対する 1 つの値の割合を決定します。
戻り値
(メソッド)
protected | {PieSet.handle-observer-message}:void |
監視対象のオブジェクトがメッセージを送信するときにこのメソッドを呼び出します。Observer はこのメソッドを実装して、変更が発生したときに処理を実行する必要があります。
sender: 変更があった Observable オブジェクトです。
message: これは、Observer からの変更に関する詳細情報が含まれています。詳細情報がない場合は NULL になります。
(メソッド)
public | {PieSet.non-keyword-init-arg a:any}:void |
InitRestArgParser.process-rest-args で非キーワード引数が検出されると、呼び出されます。
説明
Visual によるこのメソッドの実装では、最初にこのメソッドへの入力値をオブジェクトに関連するメタデータとして解釈を試みます。たとえば、オブジェクトに関連する
EventHandler と
DataBinding を認識してから、これらをアタッチするための適切な手順を実行することになります。
オーバーライド
オブジェクトに関連付けられた追加のメタデータも受け入れるようにするには、このメソッドをオーバーライドします。実装では通常、解釈に失敗した入力値でスーパー実装が呼び出されるようにします。
(メソッド)
public | {PieSet.note-color-associations-changed}:void |
この PieSet に PieSet.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"
}
| |
(メソッド)
public | {PieSet.note-set-data-array-changed}:void |
この PieSet に PieSet.set-data の順序が変更されたことを通知します。
説明
PieSet.set-data は、既存の要素の順序を変更する場合にのみ直接操作できます。これを行う場合、このメソッドを呼び出して、PieSet がその要素を再生成できるようにする必要があります。
(メソッド)
public | {PieSet.remove-color-association}:void |
(メソッド)
ChartDataSeries を PieSet.set-data から削除します。
data: 削除される ChartDataSeries。このオブジェクトは、PieSet.set-data のメンバである必要があります。そうでない場合、エラーが発生します。
説明
(メソッド)
ポイントがこの Shape 内にあるかどうかを判定します。
x: 点の X 座標。
y: 点の Y 座標。
戻り値
この Shape が (x、y) を含む場合は、true。
説明
ポイントは、このオブジェクトのローカル座標系にあります。このメソッドは、その子を考慮しません。
オーバーライド
Shape をサブクラス化する場合は、このメソッドをオーバーライドする必要があります。このメソッドは、
PointerMotion などのマウス イベントをこのオブジェクトにいつ送信するかなどを決定します。
通常は、このメソッドを実装して、ポイントが形状の境界内にあるかどうかだけでなく、ポイントが形状のレンダリングされたプリミティブ内にあるどうかを確認する必要があります。このメソッドは必要なメトリックを使用して自在に実装できます。
(メソッド)
public | {PieSet.self-intersects-polygon?}:bool |
ポリゴンがこの Shape と交差するかどうかを判定します。
polygon: この形状のローカル座標空間にポリゴンを記述するポイント セットを含むオブジェクト。このポリゴンは必ず凸型であり、反時計回りのワインディング順に従います。
説明
オーバーライド
Shape をサブクラス化する場合は、このメソッドをオーバーライドする必要があります。子を考慮する必要はありません。
通常は、このメソッドを実装して、領域が形状の境界内にあるかどうかだけでなく、領域が形状のレンダリングされたプリミティブと交差するかどうかを確認する必要があります。このメソッドは、必要なメトリックを使用して自在に実装できます。このメソッドの実装が
Shape.self-contains-point? と調和しない場合は、このオブジェクトを選択すると予期しない結果になります。
選択機能を使用しない場合は、このメソッドを単純に false を返すように実装できます。
(メソッド)
public abstract | {PieSet.update-layout}:void |
この PieSet の内部レイアウトを更新します。
inner-radius: この PieSet の内径。
outer-radius: この PieSet の外径。
total-radius: すべての PieSet の合計半径。
説明