Hi there! Are you looking for the official Deno documentation? Try docs.deno.com for all your Deno learning needs.

ScaleOrdinal

Unlike continuous scales, ordinal scales have a discrete domain and range. For example, an ordinal scale might map a set of named categories to a set of colors, or determine the horizontal positions of columns in a column chart.

The first element in the domain will be mapped to the first element in range, the second domain value to the second range value, and so on. If there are fewer elements in the range than in the domain, the scale will reuse values from the start of the range.

The first generic corresponds to the data type of domain values. The second generic corresponds to the data type of range values. The third generic corresponds to the data type of the unknown value.

interface ScaleOrdinal <Domain extends {
toString(): string;
}
, Range, Unknown = never>
{
(x: Domain): Range | Unknown;
copy(): this;
domain(): Domain[];
domain(domain: Iterable<Domain>): this;
range(): Range[];
range(range: Iterable<Range>): this;
unknown(): UnknownReturnType<Unknown, {
name: "implicit";
}
>
;
unknown<NewUnknown>(value: NewUnknown): NewUnknown extends {
name: "implicit";
}
? ScaleOrdinal<Domain, Range> : ScaleOrdinal<Domain, Range, NewUnknown>
;
}

§Type Parameters

§
Domain extends {
toString(): string;
}
[src]
§
Range
[src]
§
Unknown = never
[src]

§Call Signatures

§
(x: Domain): Range | Unknown
[src]

Given a value in the input domain, returns the corresponding value in the output range. If the given value is not in the scale’s domain, returns the unknown; or, if the unknown value is implicit (the default), then the value is implicitly added to the domain and the next-available value in the range is assigned to value, such that this and subsequent invocations of the scale given the same input value return the same output value.

§Methods

§
copy(): this
[src]

Returns an exact copy of this ordinal scale. Changes to this scale will not affect the returned scale, and vice versa.

§
domain(): Domain[]
[src]

Returns the scale's current domain.

§
domain(domain: Iterable<Domain>): this
[src]

Sets the domain to the specified array of values.

The first element in domain will be mapped to the first element in the range, the second domain value to the second range value, and so on.

Domain values are stored internally in a map from stringified value to index; the resulting index is then used to retrieve a value from the range. Thus, an ordinal scale’s values must be coercible to a string, and the stringified version of the domain value uniquely identifies the corresponding range value.

Setting the domain on an ordinal scale is optional if the unknown value is implicit (the default). In this case, the domain will be inferred implicitly from usage by assigning each unique value passed to the scale a new value from the range. Note that an explicit domain is recommended to ensure deterministic behavior, as inferring the domain from usage will be dependent on ordering.

@param domain

Array of domain values.

§
range(): Range[]
[src]

Returns the scale's current range.

§
range(range: Iterable<Range>): this
[src]

Sets the range of the ordinal scale to the specified array of values.

The first element in the domain will be mapped to the first element in range, the second domain value to the second range value, and so on.

If there are fewer elements in the range than in the domain, the scale will reuse values from the start of the range.

@param range

Array of range values.

§
unknown(): UnknownReturnType<Unknown, {
name: "implicit";
}
>
[src]

Returns the current unknown value, which defaults to "implicit".

§
unknown<NewUnknown>(value: NewUnknown): NewUnknown extends {
name: "implicit";
}
? ScaleOrdinal<Domain, Range> : ScaleOrdinal<Domain, Range, NewUnknown>
[src]

Sets the output value of the scale for unknown input values and returns this scale. The implicit value enables implicit domain construction. scaleImplicit can be used as a convenience to set the implicit value.

@param value

Unknown value to be used or scaleImplicit to set implicit scale generation.