Browse Source

fix:最大最小值

Roc 1 year ago
parent
commit
6e0810065b
2 changed files with 25 additions and 10 deletions
  1. 24 10
      services/chart/line_feature/chart_info.go
  2. 1 0
      utils/calculate.go

+ 24 - 10
services/chart/line_feature/chart_info.go

@@ -160,9 +160,9 @@ func GetPercentileData(chartInfoId int, mappingInfo *chartEdbMappingModel.ChartE
 		currDateTime, _ := time.ParseInLocation(utils.FormatDate, tmpData.DataTime, time.Local)
 		maxVal := tmpData.Value
 		minVal := tmpData.Value
-		for i := 0; i < calculateDay; i++ {
-			preVal, ok := dataMap[currDateTime.AddDate(0, 0, -i)]
-			if ok {
+		for k := 0; k < calculateDay; k++ {
+			preVal, ok2 := dataMap[currDateTime.AddDate(0, 0, -k)]
+			if ok2 {
 				if preVal > maxVal {
 					maxVal = preVal
 				}
@@ -175,14 +175,14 @@ func GetPercentileData(chartInfoId int, mappingInfo *chartEdbMappingModel.ChartE
 		if maxVal == minVal {
 			continue
 		}
-		tmpV := (tmpData.Value) / (maxVal - minVal) * 100
-		tmpV, _ = decimal.NewFromFloat(tmpV).Round(4).Float64()
 		//百分位=(现值-Min)/(Max-Min)
+		tmpV := (tmpData.Value - minVal) / (maxVal - minVal) * 100
+		tmpV, _ = decimal.NewFromFloat(tmpV).Round(4).Float64()
 		newDataList = append(newDataList, edbDataModel.EdbDataList{
 			EdbDataId:     i,
 			EdbInfoId:     edb.EdbInfoId,
-			DataTime:      dataList[i-1].DataTime,
-			DataTimestamp: dataList[i-1].DataTimestamp,
+			DataTime:      dataList[i].DataTime,
+			DataTimestamp: dataList[i].DataTimestamp,
 			Value:         tmpV,
 		})
 
@@ -301,14 +301,28 @@ func GetFrequencyDistributionData(chartInfoId int, mappingInfo *chartEdbMappingM
 		}
 	}
 
+	var minNum, maxNum int
 	tmpNum := 0
-	for _, tmpMinVal := range XDataList {
+	for k, tmpMinVal := range XDataList {
 		// 频率
 		frequencyYNum := distributionDataNumMap[tmpMinVal]
 		Y1DataList = append(Y1DataList, FrequencyDistributionYData{
 			X: tmpMinVal,
 			Y: float64(frequencyYNum),
 		})
+
+		if k == 0 {
+			minNum = frequencyYNum
+			maxNum = frequencyYNum
+		} else {
+			if frequencyYNum < minNum {
+				minNum = frequencyYNum
+			}
+			if frequencyYNum > maxNum {
+				maxNum = frequencyYNum
+			}
+		}
+
 		// 累计数
 		tmpNum += frequencyYNum
 		// 累计频率
@@ -340,8 +354,8 @@ func GetFrequencyDistributionData(chartInfoId int, mappingInfo *chartEdbMappingM
 	}
 	edbList[0].DataList = nil
 	dataResp = FrequencyDistributionResp{
-		LeftMinValue:  minVal,
-		LeftMaxValue:  maxVal,
+		LeftMinValue:  float64(minNum),
+		LeftMaxValue:  float64(maxNum),
 		RightMinValue: 0,
 		RightMaxValue: 100,
 		DataList:      newDataList,

+ 1 - 0
utils/calculate.go

@@ -1,6 +1,7 @@
 package utils
 
 import (
+	"github.com/gonum/stat"
 	"github.com/shopspring/decimal"
 	"math"
 )