private void AdaptMainPlotAreaAxesRange(double maxXRange, double minXRange) { double maxYRange; double minYRange; if (MainPlotArea.AxisY.AutoScale) { _plotManager.GetMaxAndMinYValue(MainPlotArea, out maxYRange, out minYRange); } else { maxYRange = double.NaN; minYRange = double.NaN; } MainPlotArea.AdaptPrimaryAxes(maxXRange, minXRange, maxYRange, minYRange); // 默认不同步,如果需要打开在AdaptSecondaryAxes方法中打开 MainPlotArea.YAxisSync.NeedSync = false; if (_plotManager.HasSeriesInYAxis(MainPlotArea, EasyChartXAxis.PlotAxis.Secondary)) { double maxY2Range; double minY2Range; if (MainPlotArea.AxisY2.AutoScale) { _plotManager.GetMaxAndMinY2Value(MainPlotArea, out maxY2Range, out minY2Range); } else { MainPlotArea.AxisY2.GetSpecifiedRange(out maxY2Range, out minY2Range); } MainPlotArea.AdaptSecondaryAxes(maxXRange, minXRange, maxY2Range, minY2Range); } }
// TODO 暂时只同步Y轴和Y2轴,X轴的后期再说 /// <summary> /// 更新坐标轴和游标:坐标轴的范围、缩放视图、缩放参数;游标绑定的坐标、游标缩放参数 /// </summary> public void RefreshAxesAndCursors() { double maxXRange = _plotManager.GetMaxXData(); double minXRange = _plotManager.GetMinXData(); // 如果X轴上下范围相同,则向前向后加1个间隔 if (Math.Abs(maxXRange - minXRange) < Constants.MinDoubleValue) { maxXRange += 1; minXRange -= 1; } double minXInterval = _plotManager.GetMinXInterval(); double minYInterval; if (!_isSplitView) { AdaptMainPlotAreaAxesRange(maxXRange, minXRange); minYInterval = GetMinYInterval(MainPlotArea); MainPlotArea.AdaptCursors(minXInterval, minYInterval); } else { for (int i = 0; i < SplitPlotAreas.Count; i++) { AdaptSplitPlotAreaAxesRange(i, maxXRange, minXRange); minYInterval = GetMinYInterval(SplitPlotAreas[i]); SplitPlotAreas[i].AdaptCursors(minXInterval, minYInterval); } } }
public void Clear() { MainPlotArea.Clear(); foreach (EasyChartXPlotArea splitPlotArea in SplitPlotAreas) { splitPlotArea.Clear(); } }
// TODO 暂时只同步Y轴和Y2轴,X轴的后期再说 /// <summary> /// 更新坐标轴和游标:坐标轴的范围、缩放视图、缩放参数;游标绑定的坐标、游标缩放参数 /// </summary> public void RefreshAxesAndCursors() { double minXInterval = _plotManager.GetMinXInterval(); double minYInterval; if (!_isSplitView) { AdaptMainPlotAreaAxesRange(); minYInterval = GetMinYInterval(MainPlotArea); MainPlotArea.AdaptCursors(minXInterval, minYInterval); } else { for (int i = 0; i < SplitPlotAreas.Count; i++) { AdaptSplitPlotAreaAxesRange(i); minYInterval = GetMinYInterval(SplitPlotAreas[i]); SplitPlotAreas[i].AdaptCursors(minXInterval, minYInterval); } } }