public void GetMaxAndMinYValue(StripChartXPlotArea plotArea, out double maxYValue, out double minYValue, int seriesIndex) { maxYValue = double.NaN; minYValue = double.NaN; double tmpMaxYValue, tmpMinYValue; if (seriesIndex <= -1) { AxisType yAxisType = PlotSeries[0].YAxisType; // 所有的类型都相同则计算全局最大值 if (PlotSeries.All(item => item.YAxisType == yAxisType)) { DataEntity.GetMaxAndMinYValue(out maxYValue, out minYValue); } else { maxYValue = double.MinValue; minYValue = double.MaxValue; for (int index = 0; index < PlotSeries.Count; index++) { if (PlotSeries[index].YAxisType != AxisType.Primary) { continue; } DataEntity.GetMaxAndMinYValue(index, out tmpMaxYValue, out tmpMinYValue); if (tmpMaxYValue > maxYValue) { maxYValue = tmpMaxYValue; } if (tmpMinYValue < minYValue) { minYValue = tmpMinYValue; } } if (Math.Abs(double.MaxValue - maxYValue) < Constants.MinDoubleValue) { maxYValue = double.NaN; minYValue = double.NaN; } } } else { // 无论是副坐标轴还是主坐标轴,都给主坐标轴赋最大值 DataEntity.GetMaxAndMinYValue(seriesIndex, out maxYValue, out minYValue); } }
public void GetMaxAndMinY2Value(EasyChartXPlotArea plotArea, out double maxYValue, out double minYValue, int seriesIndex) { maxYValue = double.NaN; minYValue = double.NaN; // 副坐标轴没有数据则返回 if (!HasSeriesInYAxis(plotArea, EasyChartXAxis.PlotAxis.Secondary)) { return; } double tmpMaxYValue, tmpMinYValue; if (seriesIndex <= -1) { maxYValue = double.MinValue; minYValue = double.MaxValue; int lineIndex; for (int index = 0; index < PlotSeries.Count; index++) { if (PlotSeries[index].YAxisType != AxisType.Secondary) { continue; } DataEntity dataEntity = GetDataEntityBySeriesIndex(index, out lineIndex); dataEntity.GetMaxAndMinYValue(out tmpMaxYValue, out tmpMinYValue, lineIndex); if (tmpMaxYValue > maxYValue) { maxYValue = tmpMaxYValue; } if (tmpMinYValue < minYValue) { minYValue = tmpMinYValue; } } if (Math.Abs(double.MaxValue - maxYValue) < Constants.MinDoubleValue) { maxYValue = double.NaN; minYValue = double.NaN; } } else { int lineIndex; DataEntity dataEntity = GetDataEntityBySeriesIndex(seriesIndex, out lineIndex); dataEntity.GetMaxAndMinYValue(out maxYValue, out minYValue, lineIndex); } }