@bokeh/bokehjs
Version:
Interactive, novel data visualization
36 lines • 1.31 kB
JavaScript
import { Ticker } from "./ticker";
import { ScanningColorMapper } from "../mappers/scanning_color_mapper";
import { left_edge_index } from "../../core/util/arrayable";
export class BinnedTicker extends Ticker {
static __name__ = "BinnedTicker";
constructor(attrs) {
super(attrs);
}
static {
this.define(({ Float, Ref, Or, Auto }) => ({
mapper: [Ref(ScanningColorMapper)],
num_major_ticks: [Or(Float, Auto), 8],
}));
}
get_ticks(data_low, data_high, _range, _cross_loc) {
const { binning } = this.mapper.metrics;
const k_low = Math.max(0, left_edge_index(data_low, binning));
const k_high = Math.min(left_edge_index(data_high, binning) + 1, binning.length - 1);
const _major = [];
for (let k = k_low; k <= k_high; k++) {
_major.push(binning[k]);
}
const { num_major_ticks } = this;
const major = [];
const n = num_major_ticks == "auto" ? _major.length : num_major_ticks;
const step = Math.max(1, Math.floor(_major.length / n));
for (let i = 0; i < _major.length; i += step) {
major.push(_major[i]);
}
return {
major,
minor: [],
};
}
}
//# sourceMappingURL=binned_ticker.js.map