public virtual bool Equals(AxisDrawingSettingsBase other)
        {
            if (other == null)
            {
                return(false);
            }

            return(this.PlottingLength.NearlyEqual(other.PlottingLength, 0.0001) &&
                   this.ActualTickCount == other.ActualTickCount &&
                   this.ActualTickInterval == other.ActualTickInterval &&
                   this.PixelPerUnit == other.PixelPerUnit);
        }
        public override bool Equals(AxisDrawingSettingsBase obj)
        {
            if (!base.Equals(obj))
            {
                return(false);
            }
            var other = obj as NumericAxisDrawingSettings;

            if (other == null)
            {
                return(false);
            }

            return(this.FullPlottingRange == other.FullPlottingRange &&
                   this.ActualPlottingRange == other.ActualPlottingRange);
        }
        public override bool Equals(AxisDrawingSettingsBase obj)
        {
            if (!base.Equals(obj))
            {
                return(false);
            }

            var other = obj as CategoryAxisDrawingSettings;

            if (other == null)
            {
                return(false);
            }

            return(this.PlottingItemValues?.Count == other.PlottingItemValues?.Count &&
                   this.PlottingItemValues != null &&
                   this.PlottingItemValues.SequenceEqual(other.PlottingItemValues));
        }