public void CalcData(UILineChart chart, UIScale XScale, UIScale YScale) { ClearPoints(); float[] x = XScale.CalcXPixels(XData.ToArray(), chart.DrawOrigin.X, chart.DrawSize.Width); float[] y = YScale.CalcYPixels(YData.ToArray(), chart.DrawOrigin.Y, chart.DrawSize.Height); AddPoints(x, y); }
protected void CalcAxises() { if (Option.XAxisType == UIAxisType.DateTime) { XScale = new UIDateScale(); } else { XScale = new UILinearScale(); } YScale = new UILinearScale(); //Y轴 { Option.GetAllDataYRange(out double min, out double max); if (min > 0 && max > 0 && !Option.YAxis.Scale) { min = 0; } if (min < 0 && max < 0 && !Option.YAxis.Scale) { max = 0; } YScale.SetRange(min, max); if (!Option.YAxis.MaxAuto) { YScale.Max = Option.YAxis.Max; } if (!Option.YAxis.MinAuto) { YScale.Min = Option.YAxis.Min; } YScale.AxisChange(); YLabels = YScale.CalcLabels(); } //X轴 { Option.GetAllDataXRange(out double min, out double max); XScale.SetRange(min, max); if (!Option.XAxis.MaxAuto) { XScale.Max = Option.XAxis.Max; } if (!Option.XAxis.MinAuto) { XScale.Min = Option.XAxis.Min; } XScale.AxisChange(); XLabels = XScale.CalcLabels(); } }
protected void CalcAxises() { if (Option.XAxisType == UIAxisType.DateTime) { XScale = new UIDateScale(); } else { XScale = new UILinearScale(); } YScale = new UILinearScale(); Y2Scale = new UILinearScale(); //Y轴 { Option.GetAllDataYRange(out double min, out double max); if (min > 0 && max > 0 && !Option.YAxis.Scale) { min = 0; } if (min < 0 && max < 0 && !Option.YAxis.Scale) { max = 0; } YScale.SetRange(min, max); if (!Option.YAxis.MaxAuto) { YScale.Max = Option.YAxis.Max; } if (!Option.YAxis.MinAuto) { YScale.Min = Option.YAxis.Min; } if (BaseArea == null && Option.YAxis.HaveCustomLabels) { YScale.Max = Option.YAxis.CustomLabels.Stop; YScale.Min = Option.YAxis.CustomLabels.Start; } if (YScale.Max.IsNanOrInfinity() || YScale.Min.IsNanOrInfinity()) { YScale.Max = max; YScale.Min = min; } YScale.AxisChange(); } //Y2轴 if (Option.HaveY2) { Option.GetAllDataY2Range(out double min, out double max); if (min > 0 && max > 0 && !Option.Y2Axis.Scale) { min = 0; } if (min < 0 && max < 0 && !Option.Y2Axis.Scale) { max = 0; } Y2Scale.SetRange(min, max); if (!Option.Y2Axis.MaxAuto) { Y2Scale.Max = Option.Y2Axis.Max; } if (!Option.Y2Axis.MinAuto) { Y2Scale.Min = Option.Y2Axis.Min; } if (BaseArea == null && Option.Y2Axis.HaveCustomLabels) { Y2Scale.Max = Option.Y2Axis.CustomLabels.Stop; Y2Scale.Min = Option.Y2Axis.CustomLabels.Start; } if (Y2Scale.Max.IsNanOrInfinity() || Y2Scale.Min.IsNanOrInfinity()) { Y2Scale.Max = max; Y2Scale.Min = min; } Y2Scale.AxisChange(); } //X轴 { Option.GetAllDataXRange(out double min, out double max); XScale.SetRange(min, max); if (!Option.XAxis.MaxAuto) { XScale.Max = Option.XAxis.Max; } if (!Option.XAxis.MinAuto) { XScale.Min = Option.XAxis.Min; } if (BaseArea == null && Option.XAxis.HaveCustomLabels) { XScale.Max = Option.XAxis.CustomLabels.Stop; XScale.Min = Option.XAxis.CustomLabels.Start; } XScale.AxisChange(); } }