Пример #1
0
        protected override void RemoveSignal(OxyPlot.Series.Series series)
        {
            if (series == null)
            {
                return;
            }

            PlotSignalModel signal = (PlotSignalModel)series.Tag;

            //this.paneModel.Signals.Remove(signal);

            PlotModel.Series.Remove(series);

            OxyPlot.Series.LineSeries lax = series as OxyPlot.Series.LineSeries;
            if (lax != null)
            {
                PlotModel.Axes.Remove(lax.YAxis);
            }

            if (SelectedSeries == series)
            {
                SelectedSeries = null;
            }

            PlotModel.InvalidatePlot(false);
        }
Пример #2
0
        /// <summary>
        /// Synchronizes the properties.
        /// </summary>
        /// <param name="series">The series.</param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);
            var s = (OxyPlot.Series.ItemsSeries)series;

            s.ItemsSource = this.ItemsSource;
        }
Пример #3
0
        /// <summary>
        /// Synchronizes the properties.
        /// </summary>
        /// <param name="series">The series.</param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);

            var s = (OxyPlot.Series.BoxPlotSeries)series;

            s.Fill            = Fill.ToOxyColor();
            s.LineStyle       = LineStyle;
            s.MedianPointSize = MedianPointSize;
            s.OutlierSize     = OutlierSize;
            s.OutlierType     = OutlierType;
            s.OutlierOutline  = (OutlierOutline ?? Enumerable.Empty <Point>()).Select(point => point.ToScreenPoint()).ToArray();
            s.ShowBox         = ShowBox;
            s.ShowMedianAsDot = ShowMedianAsDot;
            s.Stroke          = Stroke.ToOxyColor();
            s.StrokeThickness = StrokeThickness;
            s.WhiskerWidth    = WhiskerWidth;

            if (Items != null)
            {
                s.Items.Clear();
                foreach (var item in Items)
                {
                    s.Items.Add((OxyPlot.Series.BoxPlotItem)item);
                }
            }
        }
Пример #4
0
 /// <summary>
 /// Synchronizes the properties.
 /// </summary>
 /// <param name="series">The series.</param>
 protected override void SynchronizeProperties(OxyPlot.Series.Series series)
 {
     base.SynchronizeProperties(series);
     var s = (OxyPlot.Series.StairStepSeries)series;
     s.VerticalLineStyle = this.VerticalLineStyle;
     s.VerticalStrokeThickness = this.VerticalStrokeThickness;
 }
Пример #5
0
        protected override void PlotModel_MouseDown(object sender, OxyMouseDownEventArgs e)
        {
            base.PlotModel_MouseDown(sender, e);
            if (e.Handled)
            {
                return;
            }

            if (e.ClickCount == 1)
            {
                OxyPlot.Series.Series ser = PlotModel.GetSeriesFromPoint(e.Position, 20);
                SelectedSeries = ser;
            }

            Axis xAxis, yAxis;

            PlotModel.GetAxesFromPoint(e.Position, out xAxis, out yAxis);

            if (xAxis != null && yAxis != null)
            {
                SelectedSeries = null;
            }
            else if (xAxis == null && yAxis != null && e.ChangedButton == OxyMouseButton.Left && e.ClickCount > 1 && PlotModel.Series.Count > 0)
            {
                ShowRangeDialog(yAxis);
            }
            else if (xAxis != null && yAxis == null && e.ChangedButton == OxyMouseButton.Left && e.ClickCount > 1 && PlotModel.Series.Count > 0)
            {
                ShowRangeDialog(xAxis);
            }
        }
Пример #6
0
        /// <summary>
        /// Synchronizes the properties of this object with the underlying series object.
        /// </summary>
        /// <param name="series">The series.</param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);
            var s = (OxyPlot.Series.PieSeries)series;

            s.Stroke          = Stroke.ToOxyColor();
            s.StrokeThickness = StrokeThickness;
            s.Diameter        = Diameter;
            s.InnerDiameter   = InnerDiameter;
            s.StartAngle      = StartAngle;
            s.AngleSpan       = AngleSpan;
            s.AngleIncrement  = AngleIncrement;

            s.LegendFormat = LegendFormat;

            s.OutsideLabelFormat    = OutsideLabelFormat;
            s.InsideLabelColor      = InsideLabelColor.ToOxyColor();
            s.InsideLabelFormat     = InsideLabelFormat;
            s.InsideLabelPosition   = InsideLabelPosition;
            s.AreInsideLabelsAngled = AreInsideLabelsAngled;

            s.TickDistance         = TickDistance;
            s.TickRadialLength     = TickRadialLength;
            s.TickHorizontalLength = TickHorizontalLength;
            s.TickLabelDistance    = TickLabelDistance;

            s.ExplodedDistance = ExplodedDistance;

            s.LabelField      = LabelField;
            s.ValueField      = ValueField;
            s.ColorField      = ColorField;
            s.IsExplodedField = IsExplodedField;
        }
Пример #7
0
        /// <summary>
        /// Synchronizes the properties.
        /// </summary>
        /// <param name="series">The series.</param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);

            var s = (OxyPlot.Series.BoxPlotSeries)series;

            s.Fill            = this.Fill.ToOxyColor();
            s.LineStyle       = this.LineStyle;
            s.MedianPointSize = this.MedianPointSize;
            s.OutlierSize     = this.OutlierSize;
            s.OutlierType     = this.OutlierType;
            s.OutlierOutline  = this.OutlierOutline.ToScreenPointArray();
            s.ShowBox         = this.ShowBox;
            s.ShowMedianAsDot = this.ShowMedianAsDot;
            s.Stroke          = this.Stroke.ToOxyColor();
            s.StrokeThickness = this.StrokeThickness;
            s.WhiskerWidth    = this.WhiskerWidth;

            if (this.ItemsSource == null)
            {
                s.Items.Clear();
                foreach (var item in this.Items)
                {
                    s.Items.Add((OxyPlot.Series.BoxPlotItem)item);
                }
            }
        }
Пример #8
0
        /// <summary>
        /// Synchronizes the properties.
        /// </summary>
        /// <param name="series">The series.</param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);
            var s = (OxyPlot.Series.TwoColorLineSeries)series;

            s.Limit  = this.Limit;
            s.Color2 = this.Color2.ToOxyColor();
        }
Пример #9
0
        /// <summary>
        /// Synchronizes the properties.
        /// </summary>
        /// <param name="series">The series.</param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);
            var s = (OxyPlot.Series.ItemsSeries)series;

            // TODO: BarSeriesManager gets very unhappy when this is not initialised (i.e. empty collection): easier to fix in Core?
            s.ItemsSource = Items;
        }
Пример #10
0
        /// <summary>
        /// Synchronizes the properties.
        /// </summary>
        /// <param name="series">The series.</param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);
            var s = (OxyPlot.Series.XYAxisSeries)series;

            s.XAxisKey = this.XAxisKey;
            s.YAxisKey = this.YAxisKey;
        }
        /// <summary>
        /// Synchronizes the properties.
        /// </summary>
        /// <param name="series">The series.</param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);
            var s = (OxyPlot.Series.ThreeColorLineSeries)series;

            s.LimitLo = this.LimitLo;
            s.ColorLo = this.ColorLo.ToOxyColor();
            s.LimitHi = this.LimitHi;
            s.ColorHi = this.ColorHi.ToOxyColor();
        }
Пример #12
0
        /// <summary>
        /// Synchronizes the properties.
        /// </summary>
        /// <param name="series">The series.</param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);
            var s = (OxyPlot.Series.TwoColorAreaSeries)series;

            s.Fill          = Fill.ToOxyColor();
            s.Fill2         = Fill2.ToOxyColor();
            s.MarkerFill2   = MarkerFill2.ToOxyColor();
            s.MarkerStroke2 = MarkerStroke2.ToOxyColor();
        }
Пример #13
0
        /// <summary>
        /// The synchronize properties.
        /// </summary>
        /// <param name="series">
        /// The series.
        /// </param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);
            var s = series as OxyPlot.Series.AreaSeries;

            s.DataFieldX2 = this.DataFieldX2;
            s.DataFieldY2 = this.DataFieldY2;
            s.ConstantY2  = this.ConstantY2;
            s.Fill        = this.Fill.ToOxyColor();
            s.Reverse2    = this.Reverse2;
        }
Пример #14
0
        /// <summary>
        /// Synchronizes the properties.
        /// </summary>
        /// <param name="series">The series.</param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);
            var s = (OxyPlot.Series.DataPointSeries)series;

            s.ItemsSource = this.ItemsSource;
            s.DataFieldX  = this.DataFieldX;
            s.DataFieldY  = this.DataFieldY;
            s.CanTrackerInterpolatePoints = this.CanTrackerInterpolatePoints;
            s.Mapping = this.Mapping;
        }
Пример #15
0
 /// <summary>
 /// Synchronizes the properties.
 /// </summary>
 /// <param name="s">The series.</param>
 protected virtual void SynchronizeProperties(OxyPlot.Series.Series s)
 {
     s.Background          = this.Background.ToOxyColor();
     s.Title               = this.Title;
     s.TrackerFormatString = this.TrackerFormatString;
     s.TrackerKey          = this.TrackerKey;
     s.TrackerFormatString = this.TrackerFormatString;
     s.IsVisible           = this.Visibility == Visibility.Visible;
     s.Font      = this.FontFamily.ToString();
     s.TextColor = this.Foreground.ToOxyColor();
 }
Пример #16
0
        /// <summary>
        /// Synchronizes the properties.
        /// </summary>
        /// <param name="series">The series.</param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);
            var s = (OxyPlot.Series.LinearBarSeries)series;

            s.BarWidth            = BarWidth;
            s.FillColor           = FillColor.ToOxyColor();
            s.StrokeColor         = StrokeColor.ToOxyColor();
            s.StrokeThickness     = StrokeThickness;
            s.NegativeFillColor   = NegativeFillColor.ToOxyColor();
            s.NegativeStrokeColor = NegativeStrokeColor.ToOxyColor();
        }
Пример #17
0
 /// <summary>
 /// Synchronizes the properties.
 /// </summary>
 /// <param name="s">The series.</param>
 protected virtual void SynchronizeProperties(OxyPlot.Series.Series s)
 {
     s.Background          = Background.ToOxyColor();
     s.Title               = Title;
     s.RenderInLegend      = RenderInLegend;
     s.TrackerFormatString = TrackerFormatString;
     s.TrackerKey          = TrackerKey;
     s.TrackerFormatString = TrackerFormatString;
     s.IsVisible           = IsVisible;
     s.Font      = FontFamily.ToString();
     s.TextColor = Foreground.ToOxyColor();
 }
Пример #18
0
        /// <summary>
        /// The synchronize properties.
        /// </summary>
        /// <param name="series">
        /// The series.
        /// </param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);

            var s = (OxyPlot.Series.HeatMapSeries)series;

            s.Data = this.Data ?? new double[0, 0];
            s.X0   = this.X0;
            s.X1   = this.X1;
            s.Y0   = this.Y0;
            s.Y1   = this.Y1;
        }
Пример #19
0
        /// <summary>
        /// Synchronizes the properties.
        /// </summary>
        /// <param name="series">The series.</param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);
            var s = (OxyPlot.Series.TwoColorAreaSeries)series;

            s.Fill          = Fill.ToOxyColor();
            s.Fill2         = Fill2.ToOxyColor();
            s.MarkerFill2   = MarkerFill2.ToOxyColor();
            s.MarkerStroke2 = MarkerStroke2.ToOxyColor();
            s.Limit         = Limit;
            s.Dashes2       = Dashes2?.ToArray();
            s.LineStyle2    = LineStyle2;
        }
Пример #20
0
 /// <summary>
 /// Synchronizes the properties.
 /// </summary>
 /// <param name="series">The series.</param>
 protected override void SynchronizeProperties(OxyPlot.Series.Series series)
 {
     base.SynchronizeProperties(series);
     if (this.ItemsSource == null)
     {
         var s = (OxyPlot.Series.BarSeriesBase <T>)series;
         s.Items.Clear();
         foreach (T item in this.Items)
         {
             s.Items.Add(item);
         }
     }
 }
        private void UpdateSeries()
        {
            foreach (var series in _viewModel.ChartSeries)
            {
                try
                {
                    series.DataSource.Data.CollectionChanged -= Data_CollectionChanged;
                }
                catch
                {
                }

                Series plotSeries = ConvertSeries(series);
                _plotModel.Series.Add(plotSeries);

                series.DataSource.Data.CollectionChanged += Data_CollectionChanged;
            }
        }
Пример #22
0
        /// <summary>
        /// The synchronize properties.
        /// </summary>
        /// <param name="series">
        /// The series.
        /// </param>
        protected override void SynchronizeProperties(OxyPlot.Series.Series series)
        {
            base.SynchronizeProperties(series);
            var s = series as OxyPlot.Series.ScatterSeries;

            if (s != null)
            {
                s.MarkerFill            = this.MarkerFill.ToOxyColor();
                s.MarkerStroke          = this.MarkerStroke.ToOxyColor();
                s.MarkerStrokeThickness = this.MarkerStrokeThickness;
                s.MarkerType            = this.MarkerType;
                s.MarkerSize            = this.MarkerSize;
                s.DataFieldX            = this.DataFieldX;
                s.DataFieldY            = this.DataFieldY;
                s.DataFieldSize         = this.DataFieldSize;
                s.DataFieldValue        = this.DataFieldValue;
                s.DataFieldTag          = this.DataFieldTag;
                s.ItemsSource           = this.ItemsSource;
                s.BinSize       = this.BinSize;
                s.Mapping       = this.Mapping;
                s.MarkerOutline = this.MarkerOutline;
                s.ColorAxisKey  = this.ColorAxisKey;
            }
        }
        private Series ConvertSeries(ChartSeriesViewModel series)
        {
            Series newSeries   = null;
            var    valueSeries = series.GetScaleForProperty(series.ValueMemberPath);
            var    labelSeries = series.GetScaleForProperty(series.LabelMemberPath);


            switch (series.SeriesType)
            {
            case (ChartSeriesType.Column):
            {
                newSeries = new ColumnSeries
                {
                    ValueField  = series.ValueMemberPath,
                    ItemsSource = series.DataSource.Data,
                    FillColor   = valueSeries.Color.ToOxyColor(),
                    StrokeColor = valueSeries.Color.ToOxyColor(),
                    YAxisKey    = valueSeries.Name,
                    XAxisKey    = labelSeries.Name,
                };

                break;
            }

            case (ChartSeriesType.Line):
            {
                newSeries = new LineSeries
                {
                    ItemsSource = series.DataSource.Data,
                    DataFieldX  = series.XMemberPath,
                    DataFieldY  = series.YMemberPath,
                    MarkerType  = MarkerType.Circle,
                    Color       = valueSeries.Color.ToOxyColor(),
                    MarkerFill  = valueSeries.Color.ToOxyColor(),
                    YAxisKey    = valueSeries.Name,
                    XAxisKey    = labelSeries.Name,
                };
                break;
            }

            case (ChartSeriesType.Spline):
            {
                newSeries = new LineSeries
                {
                    ItemsSource = series.DataSource.Data,
                    DataFieldX  = series.XMemberPath,
                    DataFieldY  = series.YMemberPath,
                    MarkerType  = MarkerType.Circle,
                    Color       = valueSeries.Color.ToOxyColor(),
                    MarkerFill  = valueSeries.Color.ToOxyColor(),
                    Smooth      = true,
                    YAxisKey    = valueSeries.Name,
                    XAxisKey    = labelSeries.Name,
                };
                break;
            }

            case (ChartSeriesType.Area):
            {
                newSeries = new AreaSeries
                {
                    ItemsSource = series.DataSource.Data,
                    DataFieldX  = series.XMemberPath,
                    DataFieldY  = series.YMemberPath,
                    Color       = valueSeries.Color.ToOxyColor(),
                    Fill        = valueSeries.Color.ToOxyColor(),
                    MarkerFill  = valueSeries.Color.ToOxyColor(),
                    YAxisKey    = valueSeries.Name,
                    XAxisKey    = labelSeries.Name,
                };
                break;
            }

            case (ChartSeriesType.SplineArea):
            {
                newSeries = new AreaSeries
                {
                    ItemsSource = series.DataSource.Data,
                    DataFieldX  = series.XMemberPath,
                    DataFieldY  = series.YMemberPath,
                    Color       = valueSeries.Color.ToOxyColor(),
                    Fill        = valueSeries.Color.ToOxyColor(),
                    MarkerFill  = valueSeries.Color.ToOxyColor(),
                    Smooth      = true,
                    YAxisKey    = valueSeries.Name,
                    XAxisKey    = labelSeries.Name,
                };
                break;
            }

            case (ChartSeriesType.Bubble):
            {
                newSeries = new ScatterSeries
                {
                    ItemsSource   = series.DataSource.Data,
                    DataFieldX    = series.XMemberPath,
                    DataFieldY    = series.YMemberPath,
                    DataFieldSize = series.RadiusMemberPath,
                    MarkerFill    = valueSeries.Color.ToOxyColor(),
                    MarkerType    = MarkerType.Circle,
                    YAxisKey      = valueSeries.Name,
                    XAxisKey      = labelSeries.Name,
                };
                break;
            }

            case (ChartSeriesType.StepLine):
            {
                newSeries = new StairStepSeries
                {
                    ItemsSource = series.DataSource.Data,
                    DataFieldX  = series.XMemberPath,
                    DataFieldY  = series.YMemberPath,
                    Color       = valueSeries.Color.ToOxyColor(),
                    YAxisKey    = valueSeries.Name,
                    XAxisKey    = labelSeries.Name,
                };
                break;
            }

            default:
            {
                return(null);
            }
            }

            newSeries.Title = series.Name;

            return(newSeries);
        }