Esempio n. 1
0
 public Axis()
 {
     DeadZone = 0.2f;
     Sensitivity = 2;
     Gravity = 2;
     Axes.Add(this);
 } // Axis
Esempio n. 2
0
        public Question3()
        {
            var picker = new Question3NeighborhoodPicker(this);

            picker.Show();
            var valueAxis = new LinearAxis
            {
                Position        = AxisPosition.Bottom,
                MinimumPadding  = 0,
                MaximumPadding  = 0.06,
                AbsoluteMinimum = 0
            };
            var categoryAxis = new CategoryAxis
            {
                Position        = AxisPosition.Left,
                AbsoluteMinimum = 0,
                AbsoluteMaximum = 96
            };

            for (int i = 96; i > 0; i--)
            {
                if (i % 2 == 0)
                {
                    int o = (int)Math.Ceiling((float)i / 2);
                    categoryAxis.Labels.Add(((o + 5) % 12 + 1).ToString() + " - " + (((int)(Math.Floor((float)o + 5) / 12) + 2009).ToString()));
                }
                else
                {
                    categoryAxis.Labels.Add("");
                }
            }
            Axes.Add(categoryAxis);
            Axes.Add(valueAxis);
        }
Esempio n. 3
0
 public OxyPilot()
 {
     Axes.Add(new DateTimeAxis {
     });
     Axes.Add(new LinearAxis {
     });
 }
Esempio n. 4
0
    public BasePlotModel()
    {
        TitleFontWeight         = 200;
        DefaultFontSize         = Settings.Instance.FontSize;
        DefaultFont             = Settings.Instance.Font;
        PlotAreaBorderThickness = new OxyThickness(Settings.Instance.BorderThickness);
        Padding = new OxyThickness(Settings.Instance.Padding, Settings.Instance.Padding, Settings.Instance.Padding, Settings.Instance.Padding);

        XAxis = new LinearAxis
        {
            Title                  = "X",
            Unit                   = "Å",
            Position               = AxisPosition.Bottom,
            Key                    = "X",
            FontWeight             = Settings.Instance.FontWeight,
            FontSize               = Settings.Instance.FontSize,
            Font                   = Settings.Instance.Font,
            AxislineThickness      = Settings.Instance.AxisThickness,
            MinorGridlineThickness = Settings.Instance.AxisThickness / 2,
            MajorGridlineThickness = Settings.Instance.AxisThickness,
            MajorTickSize          = Settings.Instance.AxisThickness * 3.5,
            MinorTickSize          = Settings.Instance.AxisThickness * 2,
            TitleFormatString      = Settings.Instance.AxisFormat
        };
        Axes.Add(XAxis);

        if (!PlotAreaBorderThickness.Equals(new OxyThickness(0)))
        {
            return;
        }
        XAxis.AxislineStyle = LineStyle.Solid;
    }
Esempio n. 5
0
        public void AddAggregatedAxis(string attributeName, AxisDirection dir, out float max, out float length)
        {
            var lom = Data.TypeOf(attributeName);

            switch (lom)
            {
            case LoM.NOMINAL:
                var mea = Data.nominalStatistics[attributeName];
                length = (mea.numberOfUniqueValues + 1) * .15f;
                max    = mea.distMax;
                break;

            default:
                var mea2 = Data.ordinalStatistics[attributeName];
                length = (mea2.numberOfUniqueValues + 1) * .15f;
                max    = mea2.distMax;
                break;
            }

            var yAxis = AxisFactory().CreateAutoTickedAxis("Amount", max);

            yAxis.transform.parent = Anchor;
            var comp = yAxis.GetComponent <AAxis>();

            comp.Assign(this);


            if (!Axes.ContainsKey(AxisDirection.Y))
            {
                Axes.Add(AxisDirection.Y, new List <AAxis>());
            }
            Axes[AxisDirection.Y].Add(yAxis.GetComponent <AAxis>());
        }
Esempio n. 6
0
        public BarGraphicModel(DbTestItem test)
        {
            _rand               = new Random();
            TestItem            = test;
            PlotType            = PlotType.XY;
            PlotAreaBorderColor = OxyColor.FromRgb(160, 160, 160);

            // Ось количества машин
            MachinesAxis = new CategoryAxis
            {
                Title              = "Машин",
                Position           = AxisPosition.Bottom,
                MajorGridlineColor = OxyColor.FromRgb(220, 220, 220),
                MajorGridlineStyle = LineStyle.Solid,
                TicklineColor      = OxyColor.FromRgb(160, 160, 160)
            };

            // Ось времени
            DurationAxis = new LinearAxis
            {
                Title          = "Время(сек)",
                Position       = AxisPosition.Left,
                Minimum        = 0,
                Maximum        = 10,
                MaximumPadding = 0.5,
                TicklineColor  = OxyColor.FromRgb(160, 160, 160)
            };

            test.DbShardGroups[0].ShardGroupItems.ForEach(item =>
            {
                var color  = GetColor(item.Db);
                var series = new ColumnSeries()
                {
                    Title = item.Db.Name,
                };

                if (!ColorIsBusy(color))
                {
                    series.FillColor = color;
                }

                Series.Add(series);
            });

            foreach (var t in test.DbShardGroups)
            {
                MachinesAxis.Labels.Add(t.MachinesCount.ToString());
            }

            Axes.Add(MachinesAxis);
            Axes.Add(DurationAxis);

            Update();

            var timer = new Timer(100);

            timer.Elapsed += (sender, args) => { Update(); };
            timer.Start();
        }
Esempio n. 7
0
 public EquilateralPentagon(PolygonalAxis axisOne, PolygonalAxis axisTwo, PolygonalAxis axisThree, PolygonalAxis axisFour, PolygonalAxis axisFive)
 {
     Axes.Add(axisOne);
     Axes.Add(axisTwo);
     Axes.Add(axisThree);
     Axes.Add(axisFour);
     Axes.Add(axisFive);
 }
Esempio n. 8
0
        private void UpdateAxes()
        {
            XAxis = CreateXAxis();
            YAxis = CreateYAxis();

            Axes.Add(XAxis);
            Axes.Add(YAxis);
        }
Esempio n. 9
0
        public List <Order> SaveAxeAndReturnUpdatedOrders(Axe axe)
        {
            Axes.Add(axe);
            var affectedOrders = Orders.Where(o => o.ISIN == axe.ISIN).ToList();

            affectedOrders.ForEach((o) => o.Axes.Add(axe));
            return(affectedOrders);
        }
Esempio n. 10
0
        private void SetXAxisForPlotModel(double minVal, double maxVal, string title)
        {
            var xAxis = CreateAxisForPlotModel(minVal, maxVal, title, true);

            xAxis.MajorStep = 1;
            xAxis.MinorStep = 0.2;
            Axes.Add(xAxis);
        }
Esempio n. 11
0
 public EquilateralPentagon(PolygonalAxis axisOne, PolygonalAxis axisTwo, PolygonalAxis axisThree, PolygonalAxis axisFour, PolygonalAxis axisFive, List <Area> areas)
 {
     Axes.Add(axisOne);
     Axes.Add(axisTwo);
     Axes.Add(axisThree);
     Axes.Add(axisFour);
     Axes.Add(axisFive);
     Areas = areas;
 }
Esempio n. 12
0
        public LineGraphicModel(DbTestItem test)
        {
            _rand               = new Random();
            TestItem            = test;
            PlotType            = PlotType.XY;
            PlotAreaBorderColor = OxyColor.FromRgb(160, 160, 160);

            // Ось количества машин
            MachinesAxis = new LinearAxis
            {
                Title              = "Машин",
                Position           = AxisPosition.Bottom,
                Minimum            = 0.8,
                Maximum            = test.Testers.GetLength(0) + 0.8,
                MajorStep          = 1,
                MajorGridlineColor = OxyColor.FromRgb(220, 220, 220),
                MajorGridlineStyle = LineStyle.Solid,
                TicklineColor      = OxyColor.FromRgb(160, 160, 160)
            };

            // Ось времени
            DurationAxis = new LinearAxis
            {
                Title          = "Время(сек)",
                Position       = AxisPosition.Left,
                Minimum        = 0,
                Maximum        = 10,
                MaximumPadding = 0.5,
                TicklineColor  = OxyColor.FromRgb(160, 160, 160)
            };

            test.DbShardGroups[0].ShardGroupItems.ForEach(item =>
            {
                var color  = GetColor(item.Db);
                var series = new LineSeries
                {
                    Title      = item.Db.Name,
                    MarkerType = MarkerType.Circle,
                    CanTrackerInterpolatePoints = false,
                    Smooth = true,
                };

                if (!ColorIsBusy(color))
                {
                    series.Color      = color;
                    series.MarkerFill = color;
                }

                Series.Add(series);
            });

            Axes.Add(MachinesAxis);
            Axes.Add(DurationAxis);

            Update();
        }
Esempio n. 13
0
        /// <summary>
        /// Method to invoke when the Add command is executed.
        /// </summary>
        private async Task OnAddAxisExecuteAsync()
        {
            var viewModel = new AxisDefinitionViewModel(new AxisDefinitionModel());

            if (await _uiVisualizerService.ShowDialogAsync(viewModel) ?? false)
            {
                Axes.Add(viewModel.AxisDefinitionModel);
                ViewModelCommandManager.InvalidateCommands(true);
            }
        }
Esempio n. 14
0
        public void AddAxisSet(AxisLabelSet axisLabelSet)
        {
            axisLabelSet.LabelSystem = this;
            axisLabelSet.ChainNode   = ChainNode;

            axisLabelSet.DeletionRequested += () => RemoveAxisSet(axisLabelSet);

            Axes.Add(axisLabelSet);

            AxisSetAdded(axisLabelSet);
        }
Esempio n. 15
0
 public ControllerDefinition(ControllerDefinition source)
     : this()
 {
     Name = source.Name;
     BoolButtons.AddRange(source.BoolButtons);
     foreach (var kvp in source.Axes)
     {
         Axes.Add(kvp);
     }
     CategoryLabels = source.CategoryLabels;
 }
Esempio n. 16
0
 /// <summary>
 ///     Fired upon GameObject creation.
 /// </summary>
 public void OnCreate(GameObject obj)
 {
     if (obj != null)
     {
         switch (obj.Name)
         {
         case "Olaf_Base_Q_Axe_Ally.troy":
             Axes.Add(obj.NetworkId, obj.Position);
             break;
         }
     }
 }
Esempio n. 17
0
 /// <summary>
 ///     Fired upon GameObject creation.
 /// </summary>
 public void OnCreate(GameObject obj)
 {
     if (obj.IsValid)
     {
         switch (obj.Name)
         {
         case "Olaf_Base_Q_Axe_Ally.troy":
         case "Olaf_Skin04_Q_Axe_Ally.troy":
             Axes.Add(obj.NetworkID, screenPos);
             break;
         }
     }
 }
 /// <summary>
 /// Common logic for entering the chart.
 /// </summary>
 /// <param name="icelc">The context.</param>
 /// <param name="cc">The component entering chart.</param>
 protected void ComponentEnter(IChartEnterLeaveContext icelc, ChartComponent cc)
 {
     // pre-load resources
     if (cc is IRequireChartTheme irct)
     {
         if (Theme == null)
         {
             Report(new ChartValidationResult("Chart", $"The {nameof(Theme)} property is NULL, chart elements may not be visible", new[] { cc.NameOrType(), nameof(Theme) }));
         }
         else
         {
             irct.Theme = Theme;
         }
     }
     // invoke IREL
     if (cc is IRequireEnterLeave irel)
     {
         irel.Enter(icelc);
     }
     // for now anything can provide legend items
     if (cc is IProvideLegend ipl)
     {
         foreach (var li in ipl.LegendItems)
         {
             LegendItems.Add(li);
         }
     }
     if (cc is IProvideLegendDynamic ipld)
     {
         // attach the event
         ipld.LegendChanged -= Ipld_LegendChanged;
         ipld.LegendChanged += Ipld_LegendChanged;
     }
     // axis and DSRP are mutually-exclusive
     if (cc is IChartAxis ica)
     {
         Axes.Add(ica);
     }
     if (cc is IProvideDataSourceRenderer ipdsr)
     {
         Register(ipdsr.Renderer);
     }
     else if (cc is IDataSourceRenderer idsr)
     {
         Register(idsr);
     }
     foreach (var px in AllPhases)
     {
         px.Enter(cc);
     }
 }
Esempio n. 19
0
        public Matrix_Model
        (
            int plot_index,
            string[] op_tit,
            List <ScatterSeries> list_matrix_series,
            List <ScatterSeries> list_work_series,
            OxyPlot.Wpf.PlotView matrix2D_work_plot,
            Work_Model work_model
        )
        {
            Title = op_tit[plot_index];
            index = plot_index;

            IsLegendVisible         = false;
            PlotAreaBorderThickness = new OxyThickness(1, 0, 0, 1);
            PlotMargins             = new OxyThickness(0, 0, 0, 0);
            Padding = new OxyThickness(5);

            Background     = OxyColors.White;
            SelectionColor = OxyColors.Crimson;

            Axes.Add(new LinearAxis
            {
                Position  = AxisPosition.Bottom,
                TickStyle = OxyPlot.Axes.TickStyle.None,
                //MajorGridlineStyle = LineStyle.Dash,
                //MinorGridlineStyle = LineStyle.Dash,
                MaximumPadding = 0.1,
                MinimumPadding = 0.1,
                IsPanEnabled   = false,
                IsZoomEnabled  = false,
                FontSize       = 0.1,
                SelectionMode  = OxyPlot.SelectionMode.Multiple
            });
            Axes.Add(new LinearAxis
            {
                Position  = AxisPosition.Left,
                TickStyle = OxyPlot.Axes.TickStyle.None,
                //MajorGridlineStyle = LineStyle.Dash,
                //MinorGridlineStyle = LineStyle.Dash,
                MaximumPadding = 0.1,
                MinimumPadding = 0.1,
                IsPanEnabled   = false,
                IsZoomEnabled  = false,
                FontSize       = 0.1,
                SelectionMode  = OxyPlot.SelectionMode.Multiple
            });

            Load_Mouse_Events(list_matrix_series, list_work_series, work_model, matrix2D_work_plot);
        }
Esempio n. 20
0
        private void Loader_OnLoaded(object sender, EventArgs e)
        {
            var data = sender as List <StolenBikeInMonthOfYear>;

            var BikeTheftList = new List <Tuple <int, int, int> >();

            foreach (var item in data)
            {
                BikeTheftList.Add(new Tuple <int, int, int>(item.StolenBikes, item.Month, item.Year));
            }
            var points = new LineSeries
            {
                Title        = "Fietsdiefstallen per maand",
                MarkerType   = MarkerType.Circle,
                MarkerSize   = 4,
                MarkerStroke = OxyColors.White
            };
            var categoryAxis = new CategoryAxis
            {
                Position        = AxisPosition.Bottom,
                TickStyle       = TickStyle.Outside,
                AbsoluteMinimum = 2011,
                AbsoluteMaximum = 2014,
                Maximum         = 2014
            };
            var valueAxis = new LinearAxis
            {
                Position        = AxisPosition.Left,
                TickStyle       = TickStyle.Outside,
                Minimum         = 0,
                Maximum         = 400,
                AbsoluteMinimum = 0,
                AbsoluteMaximum = 550
            };

            BikeTheftList.Sort(new TupleCompareClass().Compare);
            foreach (var item in BikeTheftList)
            {
                points.Points.Add(new DataPoint((item.Item3 + (1.0 / 12.0 * item.Item2)), item.Item1));
            }
            for (int i = 1; i < 2026; i++)
            {
                categoryAxis.Labels.Add(i.ToString());
            }
            Series.Add(points);
            Axes.Add(valueAxis);
            Axes.Add(categoryAxis);

            InvalidatePlot(true);
        }
Esempio n. 21
0
        public void AddBarChartAxis(string attributeName, AxisDirection dir)
        {
            var axis = AxisFactory().CreateAutoTickedAxis(attributeName, AxisDirection.X, Data);

            axis.transform.parent = Anchor;

            if (!Axes.ContainsKey(dir))
            {
                Axes.Add(dir, new List <AAxis>());
            }
            Axes[dir].Add(axis.GetComponent <AAxis>());

            RegisterAxis(axis.GetComponent <AAxis>());
        }
Esempio n. 22
0
        public BoxPlotPerFieldPlotModel(IList <FieldViewModel> fields, string yAxisTitle)
        {
            Axes.Add(CreateXAxis(fields));
            Axes.Add(CreateYAxis(yAxisTitle));

            ColorsToUse = new OxyPlotColorsToUse();

            int i = 0;

            foreach (FieldViewModel field in fields)
            {
                BoxPlotSeries series = CreateSeries(field, i++);
                Series.Add(series);
            }
        }
Esempio n. 23
0
        public Work_Model
        (
            int plot_index,
            string[] op_tit,
            string[] x_tit,
            string[] y_tit,
            List <ScatterSeries> list_work_series,
            List <ScatterSeries> list_matrix_series,
            List <Matrix_Model> list_matrix_models
        )
        {
            Title = op_tit[plot_index];
            index = plot_index;
            PlotAreaBorderThickness = new OxyThickness(1, 0, 0, 1);
            PlotMargins             = new OxyThickness(30, 0, 0, 30);
            IsLegendVisible         = false;
            SelectionColor          = OxyColors.Crimson;

            Axes.Add(new LinearAxis
            {
                Position           = AxisPosition.Bottom,
                TickStyle          = OxyPlot.Axes.TickStyle.None,
                MajorGridlineStyle = LineStyle.Solid,
                MinorGridlineStyle = LineStyle.Dash,
                MaximumPadding     = 0,
                MinimumPadding     = 0,
                Title         = x_tit[plot_index],
                SelectionMode = OxyPlot.SelectionMode.Multiple
            });
            Axes.Add(new LinearAxis
            {
                Position           = AxisPosition.Left,
                TickStyle          = OxyPlot.Axes.TickStyle.None,
                MajorGridlineStyle = LineStyle.Solid,
                MinorGridlineStyle = LineStyle.Dash,
                MaximumPadding     = 0,
                MinimumPadding     = 0,
                Title         = y_tit[plot_index],
                SelectionMode = OxyPlot.SelectionMode.Multiple
            });

            Load_Mouse_Events
            (
                list_work_series,
                list_matrix_series,
                list_matrix_models
            );
        }
Esempio n. 24
0
 private void LoadLines(IEnumerable <string> lines)
 {
     foreach (var line in lines)
     {
         var fields = line.Split(';');
         var m1     = GetPoint(fields[2]);
         var m2     = GetPoint(fields[3]);
         if (m1 == null || m2 == null)
         {
             continue;
         }
         Axes.Add(new Axis {
             Id = fields[1], M1 = m1, M2 = m2, Description = fields[4]
         });
     }
 }
Esempio n. 25
0
 private void _initAxes()
 {
     foreach (string axisName in Enum.GetNames(typeof(HID_USAGES))) // This Enum crap was a PITA
     {
         HID_USAGES axis = (HID_USAGES)Enum.Parse(typeof(HID_USAGES), axisName);
         if (Vjoy.GetVJDAxisExist(_vJoyNumber, axis))
         {
             VjoyAxis vjoyAxis = new VjoyAxis(
                 parentVcontroller: this,
                 name: axisName.Replace("HID_USAGE_", "").ToLower()
                 );
             Axes.Add(vjoyAxis);
             AxesByName.Add(axisName.Replace("HID_USAGE_", "").ToLower(), vjoyAxis);
         }
     }
 }
        public FrequencyHistogramViewModel(FrequencyDomain frequencyDomain)
        {
            Title = Properties.Resources.PLOT_FREQUENCY_HISTOGRAM_TITLE;
            Axes.Add(new LinearAxis {
                Position = AxisPosition.Left, Title = Properties.Resources.PLOT_FREQUENCY_HISTOGRAM_LEFT_AXIS
            });
            Axes.Add(new LinearAxis {
                Position = AxisPosition.Bottom, Title = Properties.Resources.PLOT_FREQUENCY_HISTOGRAM_BOTTOM_AXIS
            });

            if (frequencyDomain != null)
            {
                HistogramSeries chs = new HistogramSeries();
                chs.Items.AddRange(GetFrequencyBins(frequencyDomain));
                Series.Add(chs);
            }
        }
Esempio n. 27
0
        public PenaltyPerControlPointPlotModel(IList <FieldViewModel> fields, string yAxisTitle)
        {
            XAxis = CreateXAxis();
            YAxis = CreateYAxis(yAxisTitle);

            ColorsToUse = new OxyPlotColorsToUse();

            Axes.Add(CreateXAxis());
            Axes.Add(CreateYAxis(yAxisTitle));

            foreach (FieldViewModel field in fields)
            {
                LineSeries PenaltySeries = CreatePenaltySeries(field);
                Series.Add(PenaltySeries);
            }

            IsLegendVisible = false;
        }
Esempio n. 28
0
        public TradePlot()
        {
            PlotAreaBorderColor = OxyColors.White;
            Background          = OxyColors.Black;

            var yAxis = new LinearAxis
            {
                Position           = AxisPosition.Left,
                Title              = "Balance",
                AbsoluteMinimum    = 0,
                AxisTitleDistance  = 10,
                MaximumPadding     = 0.1,
                MinimumPadding     = 0.1,
                TextColor          = OxyColors.White,
                TicklineColor      = OxyColors.White,
                MajorGridlineColor = OxyColors.White,
                ExtraGridlineColor = OxyColors.White,
                AxislineColor      = OxyColors.White,
                TitleColor         = OxyColors.White
            };

            Axes.Add(yAxis);

            LinearAxis xAxis = new DateTimeAxis()
            {
                Position           = AxisPosition.Bottom,
                StringFormat       = "dd/MM",
                Title              = "Date",
                AxisTitleDistance  = 10,
                TextColor          = OxyColors.White,
                TicklineColor      = OxyColors.White,
                MajorGridlineColor = OxyColors.White,
                ExtraGridlineColor = OxyColors.White,
                AxislineColor      = OxyColors.White,
                TitleColor         = OxyColors.White,
            };

            Axes.Add(xAxis);

            var lineSeries = new LineSeries();

            Points = lineSeries.Points;
            Series.Add(lineSeries);
        }
            public OsuTKJoystickState(JoystickDevice device)
            {
                // Populate axes
                for (int i = 0; i < JoystickDevice.MAX_AXES; i++)
                {
                    var value = device.RawState.GetAxis(i);

                    // do not allow a deadzone below float_epsilon
                    var deadzone = MathF.Max(device.DefaultDeadzones?[i] ?? 0, Precision.FLOAT_EPSILON);

                    if (!Precision.AlmostEquals(value, 0, deadzone))
                    {
                        Axes.Add(new JoystickAxis(i, value));

                        // We're off the center, activate negative / positive button
                        if (value > deadzone)
                        {
                            Buttons.SetPressed(JoystickButton.FirstAxisPositive + i, true);
                        }
                        else if (value < deadzone * -1)
                        {
                            Buttons.SetPressed(JoystickButton.FirstAxisNegative + i, true);
                        }
                    }
                }

                // Populate normal buttons
                for (int i = 0; i < JoystickDevice.MAX_BUTTONS; i++)
                {
                    if (device.RawState.GetButton(i) == ButtonState.Pressed)
                    {
                        Buttons.SetPressed(JoystickButton.FirstButton + i, true);
                    }
                }

                // Populate hat buttons
                for (int i = 0; i < JoystickDevice.MAX_HATS; i++)
                {
                    foreach (var hatButton in getHatButtons(device, i))
                    {
                        Buttons.SetPressed(hatButton, true);
                    }
                }
            }
Esempio n. 30
0
        private void Loader_OnLoaded(object sender, EventArgs e)
        {
            var data = sender as List <MostBikeContainer>;

            var NeighbourhoodList = new List <Tuple <string, float> >();

            foreach (var item in data)
            {
                NeighbourhoodList.Add(new Tuple <string, float>(item.Neighborhoods, (float)item.Count));
            }
            GraphFactory <int> graphFactory = new GraphFactory <int>();
            var bars = new BarSeries
            {
                Title           = "Fietstrommels per buurt",
                StrokeColor     = OxyColors.Black,
                StrokeThickness = 1
            };
            var categoryAxis = new CategoryAxis {
                Position = AxisPosition.Left
            };
            var valueAxis = new LinearAxis
            {
                Position        = AxisPosition.Bottom,
                MinimumPadding  = 0,
                MaximumPadding  = 0.06,
                AbsoluteMinimum = 0
            };

            NeighbourhoodList.Sort(new TupleCompareClass().Compare);
            for (int i = 0; i < 5; i++)
            {
                bars.Items.Add(new BarItem {
                    Value = NeighbourhoodList.ElementAt(i).Item2
                });
                categoryAxis.Labels.Add(NeighbourhoodList.ElementAt(i).Item1);
            }
            Series.Add(bars);
            Axes.Add(categoryAxis);
            Axes.Add(valueAxis);

            // render explicit
            InvalidatePlot(true);
        }