Conformance: Time Trend Chart Scales-y Option done.

This commit is contained in:
chiayin
2023-08-31 15:15:08 +08:00
parent b7c04c9382
commit 7ee1dac5b1
3 changed files with 165 additions and 7 deletions

View File

@@ -5,9 +5,11 @@ import getMoment from 'moment';
* @param {array} baseData 後端給的 10 個時間點
* @param {number} xMax 2022-05-23T18:00:00
* @param {number} xMin 2022-05-23T08:00:00
* @param {number} yMax case
* @param {number} yMin case
* @returns {array} 可直接套入 chart.js 的 data
*/
export function setLineChartData(baseData, xMax, xMin) {
export function setLineChartData(baseData, xMax, xMin, isPercent, yMax, yMin) {
let data = baseData.map(i=>({x:i.x,y:i.y}))
// y 軸斜率計算請參考 ./public/timeFrameSlope 的圖
// x 值為 0 ~ 11,
@@ -23,7 +25,8 @@ export function setLineChartData(baseData, xMax, xMin) {
let e = 2;
let f = baseData[1].y;
b = (e*d - a*d - f*a - f*c) / (e - c - a)
b = b > 1 ? 1 : b < 0 ? 0 : b;
if(isPercent) b = b >= 1 ? 1 : b <= 0 ? 0 : b;
else b = b >= yMax ? yMax : b <= yMin ? yMin : b;
// y 軸最大值
let ma = 9;
@@ -33,7 +36,8 @@ export function setLineChartData(baseData, xMax, xMin) {
let me = 11;
let mf;
mf = (mb*me - mb*mc -md*me + md*ma) / (ma - mc);
mf = mf > 1 ? 1 : mf < 0 ? 0 : mf;
if(isPercent) mf = mf >= 1 ? 1 : mf <= 0 ? 0 : mf;
else mf = mf >= yMax ? yMax : mf <= yMin ? yMin : mf;
// 添加最小值
data.unshift({