Appearance
module domain.ts
type NumericDomain
ts
export type NumericDomain = {
min: number;
max: number;
};
Domains are used to represent a range of values, usually in data-space, but can be used to represent screen-space ranges as well
Note even with negative ranges the higher negative value shoudld still be set on min
. like so... {min: -822, max: -400}
- min
number
- max
number
type DateDomain
ts
export type DateDomain = {
min: Date;
max: Date;
};
- min
Date
- max
Date
type Domain
ts
export type Domain = NumericDomain | DateDomain | DiscreteDomain;
interface DiscreteDomain
ts
export interface DiscreteDomain extends NumericDomain {
values: string[];
}
function isNumberDomain
ts
(d: Domain) => d is NumericDomain
Parameters
- d
Domain
Returns boolean
function isDateDomain
ts
(d: Domain) => d is DateDomain
Parameters
- d
Domain
Returns boolean
function isDiscreteDomain
ts
(d: Domain) => d is DiscreteDomain
Parameters
- d
Domain
Returns boolean
function fromValues
ts
(values: string[]) => DiscreteDomain
Parameters
- values
string[]
Returns DiscreteDomain
function toNumericDomain
ts
(d: DateDomain) => NumericDomain
Parameters
Returns NumericDomain
function fromTimeFrame
ts
(vals: [Date, Date]) => DateDomain
Parameters
- vals
[Date, Date]
Returns DateDomain
function fromRange
ts
(range: number, offset?: number) => NumericDomain
returns a new Domain given a range and optional offset. fromRange(100, 20) == {min: 20, max: 120}
Parameters
range
number
distance between the minimum and maximum values
offset
number
where the range begins (defaults to 0)
Returns NumericDomain
function getExtents
ts
(values: number[]) => NumericDomain
creates a new domain by finding the numeric min and max in a given array of numbers
getExtents([1,2,3,-10]) == {min:-10, max: 3}
Parameters
- values
number[]
Returns NumericDomain
function getAbsoluteExtents
ts
(values: number[]) => NumericDomain
like getExtents
but ensures 0 is part of the resulting range
Parameters
- values
number[]
Returns NumericDomain
function getRange
ts
(domain: Domain) => number
gets the distance between a domain's min and max while considering negative values
Parameters
- domain
Domain
Returns number
function scale
ts
(domain: Domain, offset: number, factor?: number) => Domain
scales a domain by a given factor
Parameters
- domain
Domain
- offset
number
- factor
number
Returns Domain
function valueInside
ts
(value: Value, domain: Domain) => boolean
returns true if value
is between a domain's min and max (inclusively of min and max)
Parameters
Returns boolean
function normalize
ts
(value: number | Date, domain: Domain) => number
Parameters
- value
number | Date
- domain
Domain