MCPcopy Create free account
hub / github.com/microsoft/SandDance / binnable

Function binnable

packages/sanddance-specs/src/bin.ts:35–139  ·  view source on GitHub ↗
(prefix: string, domainDataName: string, discreteColumn: DiscreteColumn)

Source from the content-addressed store, hash-verified

33export type Binnable = NativeBinnable | AugmentBinnable;
34
35export function binnable(prefix: string, domainDataName: string, discreteColumn: DiscreteColumn): Binnable {
36 const { column, defaultBins, maxbins, maxbinsSignalDisplayName, maxbinsSignalName } = discreteColumn;
37 if (column.quantitative) {
38 const field = `${prefix}_bin_${exprSafeFieldName(column.name)}`;
39 const fieldEnd = `${field}_end`;
40 const binSignal = `${field}_bins`;
41 const extentSignal = `${field}_bin_extent`;
42 domainDataName = `${field}_sequence`; //override the data name
43 const extentTransform: ExtentTransform = {
44 type: 'extent',
45 field: safeFieldName(column.name),
46 signal: extentSignal,
47 };
48 const maxbinsSignal: Signal = {
49 name: maxbinsSignalName,
50 value: defaultBins,
51 bind: {
52 name: maxbinsSignalDisplayName,
53 debounce: 50,
54 input: 'range',
55 min: 1,
56 max: maxbins,
57 step: 1,
58 },
59 };
60 const binTransform: BinTransform = {
61 type: 'bin',
62 field: safeFieldName(column.name),
63 as: [
64 field,
65 fieldEnd,
66 ],
67 signal: binSignal,
68 extent: {
69 signal: `[${extentSignal}[0], ${extentSignal}[1] + 1e-11]`, //add a tiny bit to the upper extent to force the extra bin - https://github.com/vega/vega/issues/2899
70 },
71 maxbins: {
72 signal: maxbinsSignalName,
73 },
74 };
75 const dataSequence: Data = {
76 name: domainDataName,
77 transform: [
78 {
79 type: 'sequence',
80 start: {
81 signal: `${binSignal}.start`,
82 },
83 stop: {
84 signal: `${binSignal}.stop`,
85 },
86 step: {
87 signal: `${binSignal}.step`,
88 },
89 },
90 {
91 type: 'formula',
92 expr: 'datum.data',

Callers 3

constructorMethod · 0.90
constructorMethod · 0.90
constructorMethod · 0.90

Calls 2

exprSafeFieldNameFunction · 0.90
safeFieldNameFunction · 0.90

Tested by

no test coverage detected