private void OnPlotPinch(UIPinchGestureRecognizer recognizer)
        {
            var location = recognizer.LocationInView(Plot);

            if (recognizer.State == UIGestureRecognizerState.Began)
            {
                anchorPoint = location;
            }

            if (recognizer.State == UIGestureRecognizerState.Ended)
            {
                Plot.ZoomTo(recognizer.Scale, anchorPoint);
                PrimaryYAxis.ZoomTo(recognizer.Scale, anchorPoint.Y);
                PrimaryXAxis.ZoomTo(recognizer.Scale, anchorPoint.X);
                Grid.ZoomTo(recognizer.Scale, anchorPoint);

                anchorPoint = CGPoint.Empty;
            }
            else
            {
                Plot.ZoomBy(recognizer.Scale, anchorPoint);
                PrimaryYAxis.ZoomBy(recognizer.Scale, anchorPoint.Y);
                PrimaryXAxis.ZoomBy(recognizer.Scale, anchorPoint.X);
                Grid.ZoomBy(recognizer.Scale, anchorPoint);
            }
        }
        private void OnPlotPan(UIPanGestureRecognizer recognizer)
        {
            var translation = recognizer.TranslationInView(Plot);

            if (recognizer.State == UIGestureRecognizerState.Ended)
            {
                Plot.PanTo(translation);
                PrimaryYAxis.PanTo(translation.Y);
                PrimaryXAxis.PanTo(translation.X);
                Grid.PanTo(translation);
            }
            else
            {
                Plot.PanBy(translation);
                PrimaryYAxis.PanBy(translation.Y);
                PrimaryXAxis.PanBy(translation.X);
                Grid.PanBy(translation);
            }
        }