public PlottableSignalXY PlotSignalXY(
            double[] xs,
            double[] ys,
            Color?color         = null,
            double lineWidth    = 1,
            double markerSize   = 5,
            string label        = null,
            int?minRenderIndex  = null,
            int?maxRenderIndex  = null,
            LineStyle lineStyle = LineStyle.Solid,
            bool useParallel    = true
            )
        {
            PlottableSignalXY signal = new PlottableSignalXY()
            {
                xs             = xs,
                ys             = ys,
                color          = color ?? settings.GetNextColor(),
                lineWidth      = lineWidth,
                markerSize     = (float)markerSize,
                label          = label,
                minRenderIndex = minRenderIndex ?? 0,
                maxRenderIndex = maxRenderIndex ?? ys.Length - 1,
                lineStyle      = lineStyle,
                useParallel    = useParallel
            };

            Add(signal);
            return(signal);
        }
        public PlottableSignalXY PlotSignalXY(
            double[] xs,
            double[] ys,
            Color?color         = null,
            double lineWidth    = 1,
            double markerSize   = 5,
            string label        = null,
            int?minRenderIndex  = null,
            int?maxRenderIndex  = null,
            LineStyle lineStyle = LineStyle.Solid,
            bool useParallel    = true
            )
        {
            if (color == null)
            {
                color = settings.GetNextColor();
            }

            if (minRenderIndex == null)
            {
                minRenderIndex = 0;
            }
            if (maxRenderIndex == null)
            {
                maxRenderIndex = ys.Length - 1;
            }

            PlottableSignalXY signal = new PlottableSignalXY(
                xs: xs,
                ys: ys,
                color: (Color)color,
                lineWidth: lineWidth,
                markerSize: markerSize,
                label: label,
                minRenderIndex: minRenderIndex.Value,
                maxRenderIndex: maxRenderIndex.Value,
                lineStyle: lineStyle,
                useParallel: useParallel
                );

            Add(signal);
            return(signal);
        }