Parcourir la source

fix:线性方程

Roc il y a 2 ans
Parent
commit
5d27632bc2
1 fichiers modifiés avec 9 ajouts et 11 suppressions
  1. 9 11
      services/data/chart_info.go

+ 9 - 11
services/data/chart_info.go

@@ -986,21 +986,19 @@ func GetSectionScatterChartData(mappingList []*models.ChartEdbInfoMapping, edbDa
 			// 只有存在两个坐标点的时候,才能去计算线性方程和R平方
 			if len(coordinateData) >= 2 {
 				a, b = utils.GetLinearResult(coordinateData)
-				if math.IsNaN(a) || math.IsNaN(b) {
-					err = errors.New("线性方程公式生成失败")
-					return
-				}
-				if b > 0 {
-					trendLine = fmt.Sprintf("y=%sx+%s", utils.SubFloatToString(a, 4), utils.SubFloatToString(b, 4))
-				} else {
-					trendLine = fmt.Sprintf("y=%sx%s", utils.SubFloatToString(a, 4), utils.SubFloatToString(b, 4))
+				if !math.IsNaN(a) || !math.IsNaN(b) {
+					if b > 0 {
+						trendLine = fmt.Sprintf("y=%sx+%s", utils.SubFloatToString(a, 4), utils.SubFloatToString(b, 4))
+					} else {
+						trendLine = fmt.Sprintf("y=%sx%s", utils.SubFloatToString(a, 4), utils.SubFloatToString(b, 4))
+					}
+
+					minYVal, _ = decimal.NewFromFloat(a).Mul(decimal.NewFromFloat(minXVal)).Add(decimal.NewFromFloat(b)).Round(4).Float64()
+					maxYVal, _ = decimal.NewFromFloat(a).Mul(decimal.NewFromFloat(maxXVal)).Add(decimal.NewFromFloat(b)).Round(4).Float64()
 				}
 
 				// 计算R平方
 				rSquare = fmt.Sprint(utils.CalculationDecisive(coordinateData))
-
-				minYVal, _ = decimal.NewFromFloat(a).Mul(decimal.NewFromFloat(minXVal)).Add(decimal.NewFromFloat(b)).Round(4).Float64()
-				maxYVal, _ = decimal.NewFromFloat(a).Mul(decimal.NewFromFloat(maxXVal)).Add(decimal.NewFromFloat(b)).Round(4).Float64()
 			}
 
 			trendLimitData = append(trendLimitData, data_manage.CoordinatePoint{