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

Function doThemeRiverLayout

src/chart/themeRiver/themeRiverLayout.ts:81–130  ·  view source on GitHub ↗

* The layout information about themeriver * * @param data data in the series * @param seriesModel the model object of themeRiver series * @param height value used to compute every series height

(
    data: SeriesData<ThemeRiverSeriesModel>,
    seriesModel: ThemeRiverSeriesModel,
    height: number
)

Source from the content-addressed store, hash-verified

79 * @param height value used to compute every series height
80 */
81function doThemeRiverLayout(
82 data: SeriesData<ThemeRiverSeriesModel>,
83 seriesModel: ThemeRiverSeriesModel,
84 height: number
85) {
86 if (!data.count()) {
87 return;
88 }
89 const coordSys = seriesModel.coordinateSystem;
90 // the data in each layer are organized into a series.
91 const layerSeries = seriesModel.getLayerSeries();
92
93 // the points in each layer.
94 const timeDim = data.mapDimension('single');
95 const valueDim = data.mapDimension('value');
96 const layerPoints = zrUtil.map(layerSeries, function (singleLayer) {
97 return zrUtil.map(singleLayer.indices, function (idx) {
98 const pt = coordSys.dataToPoint(data.get(timeDim, idx));
99 pt[1] = data.get(valueDim, idx) as number;
100 return pt;
101 });
102 });
103
104 const base = computeBaseline(layerPoints);
105 const baseLine = base.y0;
106 const ky = height / base.max;
107
108 // set layout information for each item.
109 const n = layerSeries.length;
110 const m = layerSeries[0].indices.length;
111 let baseY0;
112 for (let j = 0; j < m; ++j) {
113 baseY0 = baseLine[j] * ky;
114 data.setItemLayout(layerSeries[0].indices[j], {
115 layerIndex: 0,
116 x: layerPoints[0][j][0],
117 y0: baseY0,
118 y: layerPoints[0][j][1] * ky
119 });
120 for (let i = 1; i < n; ++i) {
121 baseY0 += layerPoints[i - 1][j][1] * ky;
122 data.setItemLayout(layerSeries[i].indices[j], {
123 layerIndex: i,
124 x: layerPoints[i][j][0],
125 y0: baseY0,
126 y: layerPoints[i][j][1] * ky
127 });
128 }
129 }
130}
131
132/**
133 * Compute the baseLine of the rawdata

Callers 1

themeRiverLayoutFunction · 0.85

Calls 8

computeBaselineFunction · 0.85
getLayerSeriesMethod · 0.80
mapDimensionMethod · 0.80
setItemLayoutMethod · 0.80
countMethod · 0.65
dataToPointMethod · 0.65
mapMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…