Пример #1
0
        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();
            }
        }
Пример #2
0
        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();
            }
        }