MCPcopy
hub / github.com/apache/echarts / dataSample

Function dataSample

src/processor/dataSample.ts:75–122  ·  view source on GitHub ↗
(seriesType: string)

Source from the content-addressed store, hash-verified

73};
74
75export default function dataSample(seriesType: string): StageHandler {
76 return {
77
78 seriesType: seriesType,
79
80 // FIXME:TS never used, so comment it
81 // modifyOutputEnd: true,
82
83 reset: function (seriesModel: SeriesModel<SeriesOption & SeriesSamplingOptionMixin>, ecModel, api) {
84 const data = seriesModel.getData();
85 const sampling = seriesModel.get('sampling');
86 const coordSys = seriesModel.coordinateSystem;
87 const count = data.count();
88 // Only cartesian2d support down sampling. Disable it when there is few data.
89 if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {
90 const baseAxis = coordSys.getBaseAxis();
91 const valueAxis = coordSys.getOtherAxis(baseAxis);
92 const extent = baseAxis.getExtent();
93 const dpr = api.getDevicePixelRatio();
94 // Coordinste system has been resized
95 const size = Math.abs(extent[1] - extent[0]) * (dpr || 1);
96 const rate = Math.round(count / size);
97
98 if (isFinite(rate) && rate > 1) {
99 if (sampling === 'lttb') {
100 seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));
101 }
102 else if (sampling === 'minmax') {
103 seriesModel.setData(data.minmaxDownSample(data.mapDimension(valueAxis.dim), 1 / rate));
104 }
105 let sampler;
106 if (isString(sampling)) {
107 sampler = samplers[sampling];
108 }
109 else if (isFunction(sampling)) {
110 sampler = sampling;
111 }
112 if (sampler) {
113 // Only support sample the first dim mapped from value axis.
114 seriesModel.setData(data.downSample(
115 data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler
116 ));
117 }
118 }
119 }
120 }
121 };
122}

Callers 2

installFunction · 0.85
installFunction · 0.85

Calls 13

setDataMethod · 0.80
mapDimensionMethod · 0.80
getDataMethod · 0.65
countMethod · 0.65
getBaseAxisMethod · 0.65
getExtentMethod · 0.65
getDevicePixelRatioMethod · 0.65
isFunctionFunction · 0.50
getMethod · 0.45
getOtherAxisMethod · 0.45
lttbDownSampleMethod · 0.45
minmaxDownSampleMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…