{NumericAxisMixin-of t:NumericType} (クラス)
public abstract NumericAxisMixin-of {inherits GraphicOptions}
パッケージ: CURL.GUI.CHARTS
直接継承しているサブクラス: NumericAxis-of, NumericDataSeriesAxis-of

数値軸で共通の機能を実装する抽象クラス。

説明

このクラスは、NumericDataSeriesAxis-ofNumericAxis-of の両方で継承されます。これはまた、必要に応じて独自の ChartAxis の実装に組み込む場合にも適しています。
表示範囲および目盛りカウントを決定するアルゴリズムについては、NumericAxisMixin-of.calculate-tick-spacing を参照してください。

コンストラクタ
default:新しい NumericAxisMixin-of を初期化します。
コンストラクタ protected {NumericAxisMixin-of.default
force-zero?:bool,
force-range?:bool,
force-range-strict?:bool,
forced-min:t,
forced-max:t,
visible-values:{Array-of t}
}

プロパティ
force-range-strict?:この軸の範囲が厳密にオーバーライドされている場合は true
フィールド public-get private-set NumericAxisMixin-of.force-range-strict?:bool
force-range?:この軸の範囲が現在オーバーライドされている場合は true
フィールド public-get private-set NumericAxisMixin-of.force-range?:bool
forced-max:範囲が現在オーバーライドされている場合にこの軸の最大値として使用される値。
フィールド public-get private-set NumericAxisMixin-of.forced-max:t
forced-min:範囲が現在オーバーライドされている場合にこの軸の最小値として使用される値。
フィールド public-get private-set NumericAxisMixin-of.forced-min:t
tick-spacing-proc:この NumericAxisMixin-of の境界および生成される目盛りの数を制御するために使用できるプロシージャ。
非ローカル オプション public NumericAxisMixin-of.tick-spacing-proc:#TickSpacingProc
visible-values:このグラフの境界内に表示され続ける値の配列。
フィールド public constant NumericAxisMixin-of.visible-values:{Array-of t}
プロパティ 継承 DataBindingTarget: data-binding-context, data-bindings
プロパティ 継承 OptionListInterface: option-parent, option-register-proc, options, options-present-here, registered-option-keys, style-options

メソッド
calculate-tick-spacing:この軸の最適な目盛り構成を計算します。
public {NumericAxisMixin-of.calculate-tick-spacing
minimum:t,
maximum:t
}:(minimum-displayed-value:t, maximum-displayed-value:t, tick-count:int)
generate-numeric-ticks:この軸に必要な目盛りを生成します。
protected {NumericAxisMixin-of.generate-numeric-ticks
minimum:t,
maximum:t
}:(minimum-displayed-value:t, maximum-displayed-value:t, tick-count:int)
note-visible-values-changed:この軸に NumericAxisMixin-of.visible-values の内容が変更されたことを通知します。
public abstract {NumericAxisMixin-of.note-visible-values-changed}:void
set-forced-range:NumericAxisMixin-of.calculate-tick-spacing でこの軸が使用する境界に制約を適用します (またはその制約を削除します)。
public {NumericAxisMixin-of.set-forced-range
force-range?:bool,
force-range-strict?:bool = false,
forced-min:t = {unit-value-for-type t},
forced-max:t = {unit-value-for-type t}
}:void
メソッド 継承 GraphicOptions: any-to-Distance, get-display-context
メソッド 継承 DataBindingTarget: add-data-binding, get-data-binding, non-keyword-init-arg, refresh-data-binding, remove-data-binding, unset-property, update-data-binding, validate-data-binding
メソッド 継承 OptionListInterface: add-option, add-style-option, change-option-parent-notify, clone-options, get-option, get-option-by-name, keyword-init-arg, local-add-notify, local-remove-notify, name-to-option-key, new-option-item, notify-option-children, option-change-notify, option-changed, option-lookup, option-lookup-here, option-propagate-notify, option-set?, propagate-option-change, register-options, 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
メソッド 継承 InitRestArgParser: process-rest-args
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
protected {NumericAxisMixin-of.default
force-zero?:bool,
force-range?:bool,
force-range-strict?:bool,
forced-min:t,
forced-max:t,
visible-values:{Array-of t}
}

新しい NumericAxisMixin-of を初期化します。

force-zero?: true の場合、この軸の最小値と最大値は、ゼロが表現されるように必要に応じて調整されます。(この機能は、visible-values にゼロを追加することによって実装されます。)
force-range?: true の場合、forced-min および forced-max がこの軸の境界を設定するために使用されます。
force-range-strict?: true の場合、forced-min および forced-max は、変更なしにこの軸の境界となります。そうでない場合は、最も近い概数値に調整されます。NumericAxisMixin-of.set-forced-range を参照してください。
forced-min: force-range?true の場合にこの軸の最小値として使用される値。
forced-max: force-range?true の場合にこの軸の最大値として使用される値。
visible-values: この軸の境界内に常に含まれる値の配列。NumericAxisMixin-of.visible-values を参照してください。

説明

この軸の範囲の制約の詳細については、NumericAxisMixin-of.set-forced-range を参照してください。

注意事項

この軸に関連する Type は、整数でない数値型である必要があります。整数を処理する場合は、常にその整数を {NumericAxis-of float} の内部に入れることができます。調整は必要ありません。



プロパティ詳細
force-range-strict? (フィールド)
public-get private-set NumericAxisMixin-of.force-range-strict?:bool

この軸の範囲が厳密にオーバーライドされている場合は true

説明

NumericAxisMixin-of.set-forced-range を参照してください。

注意事項

NumericAxisMixin-of.force-range?false である場合、この値は無視されます。


force-range? (フィールド)
public-get private-set NumericAxisMixin-of.force-range?:bool

この軸の範囲が現在オーバーライドされている場合は true

説明

NumericAxisMixin-of.set-forced-range を参照してください。


forced-max (フィールド)
public-get private-set NumericAxisMixin-of.forced-max:t

範囲が現在オーバーライドされている場合にこの軸の最大値として使用される値。

説明

NumericAxisMixin-of.set-forced-range を参照してください。

注意事項

NumericAxisMixin-of.force-range?false である場合、この値は無視されます。


forced-min (フィールド)
public-get private-set NumericAxisMixin-of.forced-min:t

範囲が現在オーバーライドされている場合にこの軸の最小値として使用される値。

説明

NumericAxisMixin-of.set-forced-range を参照してください。

注意事項

NumericAxisMixin-of.force-range?false である場合、この値は無視されます。


tick-spacing-proc (非ローカル オプション)
public NumericAxisMixin-of.tick-spacing-proc:#TickSpacingProc

この NumericAxisMixin-of の境界および生成される目盛りの数を制御するために使用できるプロシージャ。

説明

tick-spacing-proc を参照してください。


visible-values (フィールド)
public constant NumericAxisMixin-of.visible-values:{Array-of t}

このグラフの境界内に表示され続ける値の配列。

説明

NumericAxisMixin-of.calculate-tick-spacing は、この配列のすべてのメンバが表示された範囲に収まるように、その最小値と最大値を調整します。
必要に応じてこの配列を操作できます。ただし、これを行う場合、NumericAxisMixin-of.note-visible-values-changed を呼び出す必要があります。この配列の順序は関係ありません。

注意事項

NumericAxisMixin-ofNumericDataSeriesAxis-of、および NumericAxis-of コンストラクタに渡される force-zero? パラメータは、この配列にゼロを挿入することによって実装されます。
この軸に関連する Type は、整数でない数値型である必要があります。整数を処理する場合は、常にその整数を {NumericAxis-of float} の内部に入れることができます。調整は必要ありません。

この例では、NumericAxisMixin-of.visible-values を使用して、値 -5.0 が軸の見える範囲に組み込まれるようにします。

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

{LayeredChart
    width = 15cm,
    height = 7cm,
    left-axis =
        {new {NumericDataSeriesAxis-of double},
            {ChartDataSeries sample-records, "Age"},
            {ChartDataSeries sample-records, "Points"},
            visible-values =
                {new {Array-of double}, -5.0}
        },
    {LineLayer
        sample-records,
        "Age",
        "Points",
        x-axis-data =
            {ChartDataSeries sample-records, "Name"}
    }
}





メソッド詳細
calculate-tick-spacing (メソッド)
public {NumericAxisMixin-of.calculate-tick-spacing
minimum:t,
maximum:t
}:(minimum-displayed-value:t, maximum-displayed-value:t, tick-count:int)

この軸の最適な目盛り構成を計算します。

minimum: データに存在する最小値。
maximum: データに存在する最大値。

戻り値

この軸に表示する最小値と最大値および生成する目盛りの数。最大値は最小値より大きくなければなりません。また、目盛り数は最低 2 でなければなりません

説明

このメソッドでは NumericAxisMixin-of.visible-values が使用され、また NumericAxisMixin-of.set-forced-range によって設定された範囲オーバーライドが使用されます。ただし、tick-spacing-proc は呼び出されないので、tick-spacing-procNumericAxisMixin-of.calculate-tick-spacing を呼び出しても安全です。
間隔の計算は次のように行われます。
  1. 適切な場合、最小値と最大値が強制範囲によって置き換えられます。
  2. NumericAxisMixin-of.visible-values 内のすべての値が含まれるように、最小値と最大値が調整されます。
  3. 目盛り間で許可される最小間隔の概念および軸の長さが与えられていれば、目盛りの最大数が計算されます。これとともに、各目盛り間のデータの結果の間隔が決定されます。
    許可される最小間隔は、16pt か 1 つの目盛りの幅の 6 倍か、どちらか大きいほうとして定義されます。
  4. データの目盛り間隔は、雑然とした数値になる場合があり、結果としてラベルが見苦しくなります。順序に従った次の最大間隔を判別できれば、アルゴリズムでこの問題が解決されます。使用される順序のサブセットは次のとおりです。
    .010, .020, .025, .050, .10, .20, .25, .50, 1, 2, 5, 10, 15, 20, 25, 50, 100, 200, 250, 500, 1000, 2000, 2500, 5000
    1 から 50 の範囲は特殊ケースであることに注意してください。
  5. NumericAxisMixin-of.force-range-strict? が true でない限り、x軸 の最小値と最大値は、この間隔の偶数倍となるまで、必要に応じて拡張されます。

注意事項

このメソッドは、NumericAxisMixin-of.generate-numeric-ticks または tick-spacing-proc によって呼び出されることを想定しています。NumericAxisMixin-of の独自のサブクラスを定義する場合にも、オーバーライドすると役立ちます。


generate-numeric-ticks (メソッド)
protected {NumericAxisMixin-of.generate-numeric-ticks
minimum:t,
maximum:t
}:(minimum-displayed-value:t, maximum-displayed-value:t, tick-count:int)

この軸に必要な目盛りを生成します。

minimum: データに存在する最小値。
maximum: データに存在する最大値。

戻り値

この軸に表示する最小値と最大値および生成する目盛りの数。最大値は最小値より大きくなければなりません。また、目盛り数は最低 2 でなければなりません

説明

このメソッドは、サブクラスの ChartAxis.generate-major-ticks メソッドによって呼び出されることを想定しています。このオブジェクトが ChartAxis のサブクラスであり、必要に応じ、 ChartAxis.generate-major-tick を呼び出して目盛りを作成して追加することを前提としています。このメソッドによって、表示される範囲と目盛りカウントを決定するために、tick-spacing-procNumericAxisMixin-of.calculate-tick-spacing のいずれかが呼び出されます。


note-visible-values-changed (メソッド)
public abstract {NumericAxisMixin-of.note-visible-values-changed}:void

この軸に NumericAxisMixin-of.visible-values の内容が変更されたことを通知します。

説明

軸で必要なレイアウト操作を実行できるようにするために、NumericAxisMixin-of.visible-values の内容を変更する場合には、必ずこのメソッドを呼び出す必要があります。


set-forced-range (メソッド)
public {NumericAxisMixin-of.set-forced-range
force-range?:bool,
force-range-strict?:bool = false,
forced-min:t = {unit-value-for-type t},
forced-max:t = {unit-value-for-type t}
}:void

NumericAxisMixin-of.calculate-tick-spacing でこの軸が使用する境界に制約を適用します (またはその制約を削除します)。

force-range?: true の場合、この軸に表示される範囲は、このメソッドの他のパラメータによって決定されます。そうでない場合、その範囲はデータからの最小値と最大値に基づいており、このメソッドに対する他のパラメータは無視されます。
force-range-strict?: true の場合、forced-min および forced-max は、変更なしにこの軸の境界となります。そうでない場合は、最も近い概数値に調整されます。
forced-min: force-range?true の場合にこの軸の最小値として使用される値。
forced-max: force-range?true の場合にこの軸の最大値として使用される値。

説明

このメソッドを使用して、この軸で表示されるデータ境界を制御できます。通常、NumericAxisMixin-of.calculate-tick-spacing は、データ内にある最小値と最大値で決定された境界で始まります。ただし、force-range? を true として指定すると、データの最小値と最大値ではなく、forced-minforced-max が使用されます。
通常、この最小値と最大値のソースに関係なく、NumericAxisMixin-of.calculate-tick-spacing が最適な目盛り間隔を決定し、境界をこの間隔の最も近い倍数値に切り上げます。ただし、force-range-strict?true であると、forced-minforced-max は、切り上げなしに常にそのまま使用されます。
強制範囲の有効性には関係なく、NumericAxisMixin-of.visible-values が適用されることに注意してください。

注意事項

これらの値は、NumericAxisMixin-of.default コンストラクタから、または NumericDataSeriesAxis-of.default コンストラクタと NumericAxis-of.default コンストラクタから初期化することもできます。


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

{let constant axis:{NumericDataSeriesAxis-of double} =
    {new {NumericDataSeriesAxis-of double},
        {ChartDataSeries sample-records, "Age"},
        {ChartDataSeries sample-records, "Points"},
        force-zero? = false,
        force-range? = true,
        force-range-strict? = false,
        forced-min = 1.5,
        forced-max = 7.5
    }
}

{LayeredChart
    width = 15cm,
    height = 7cm,
    left-axis = axis,
    {LineLayer
        sample-records,
        "Age",
        "Points",
        x-axis-data =
            {ChartDataSeries sample-records, "Name"}
    }
}

{Table
    columns = 2,
    {text forced-min:},
    {TextField
        value = "" & axis.forced-min,
        {on ValueFinished at tf:TextField do
            {axis.set-forced-range
                axis.force-range?,
                force-range-strict? = axis.force-range-strict?,
                forced-min = {tf.value.to-double},
                forced-max = axis.forced-max
            }
        }
    },
    {text forced-max:},
    {TextField
        value = "" & axis.forced-max,
        {on ValueFinished at tf:TextField do
            {axis.set-forced-range
                axis.force-range?,
                force-range-strict? = axis.force-range-strict?,
                forced-min = axis.forced-min,
                forced-max = {tf.value.to-double}
            }
        }
    }
}

{CheckButton
    label = "force-range?",
    value = axis.force-range?,
    {on ValueFinished at cb:CheckButton do
        {axis.set-forced-range
            cb.value,
            force-range-strict? = axis.force-range-strict?,
            forced-min = axis.forced-min,
            forced-max = axis.forced-max
        }
    }
}

{CheckButton
    label = "force-range-strict?",
    value = axis.force-range-strict?,
    {on ValueFinished at cb:CheckButton do
        {axis.set-forced-range
            axis.force-range?,
            force-range-strict? = cb.value,
            forced-min = axis.forced-min,
            forced-max = axis.forced-max
        }
    }
}