Esempio n. 1
0
        private void GenerateData()
        {
            this.Chart            = new Chart();
            this.Chart.Title.Text = "Population Count";

            StepLineSeries series = new StepLineSeries();

            series.Title = "United States";
            series.Items = _dataManager.GetPopulationCountBasedOnCountry("United States");
            this.Chart.Series.Add(series);

            series       = new StepLineSeries();
            series.Title = "United Kingdom";
            series.Items = _dataManager.GetPopulationCountBasedOnCountry("United Kingdom");
            this.Chart.Series.Add(series);

            NumericAxis independentAxis = Axis.CreateDefaultIndependentAxis <NumericAxis>
                                              (o => {
                o.NumberFormat    = "#,##0,,M";
                o.IsOriginVisible = false;
            });
            DateTimeAxis dependentAxis = Axis.CreateDefaultDependentAxis <DateTimeAxis>();

            this.Chart.IndependentAxis = independentAxis;
            this.Chart.DependentAxis   = dependentAxis;
        }
Esempio n. 2
0
        // Line Series
        public StepLineSeries SetProperties(StepLineSeries NewSeries, DataPt Pt)
        {
            NewSeries.PointForeground   = Pt.Marker.Graphics.GetBackgroundBrush();
            NewSeries.PointGeometrySize = Pt.Marker.Radius;

            return(NewSeries);
        }
Esempio n. 3
0
 private void SetStepLineProperties(StepLineSeries Ser, DataPt Pt)
 {
     Ser.Fill              = Brushes.Transparent;
     Ser.PointForeground   = Pt.Marker.Graphics.GetBackgroundBrush();
     Ser.PointGeometrySize = Pt.Marker.Radius;
     Ser.AlternativeStroke = Pt.Graphics.GetStrokeBrush();
 }
Esempio n. 4
0
        private StepLineSeries ConfigureLineSeries(StepLineSeries Ser)
        {
            Ser.Name              = "Axle";
            Ser.StrokeThickness   = 2.5f;
            Ser.Stroke            = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromRgb(28, 142, 196));
            Ser.Fill              = System.Windows.Media.Brushes.Transparent;
            Ser.PointGeometrySize = 5;
            Ser.PointForeground   = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromRgb(34, 46, 49));

            return(Ser);
        }
Esempio n. 5
0
    public ViewModel()
    {
        var data = new[]
        {
            new Fruit {
                Name = "Apple", SalesPerDay = 4, Stock = 6
            },
            new Fruit {
                Name = "Orange", SalesPerDay = 6, Stock = 4
            },
            new Fruit {
                Name = "Pinaple", SalesPerDay = 2, Stock = 2
            },
            new Fruit {
                Name = "Potoato", SalesPerDay = 8, Stock = 4
            },
            new Fruit {
                Name = "Lettuce", SalesPerDay = 3, Stock = 6
            },
            new Fruit {
                Name = "Cherry", SalesPerDay = 4, Stock = 8
            }
        };

        var salesPerDaysSeries = new LineSeries <Fruit>
        {
            Name   = "Items sold per day",
            Values = data,
            TooltipLabelFormatter = point => $"{point.Model.Name}, sold {point.Model.SalesPerDay} items",
            Mapping = (fruit, point) =>
            {
                point.PrimaryValue   = fruit.SalesPerDay; // use the SalesPerDay property in this series // mark
                point.SecondaryValue = point.Context.Index;
            }
        };

        var stockSeries = new StepLineSeries <Fruit>
        {
            Name   = "Active stock",
            Values = data,
            TooltipLabelFormatter = point => $"{point.Model.Stock} items remaining",
            Mapping = (fruit, point) =>
            {
                point.PrimaryValue   = fruit.Stock; // use the Stock property in this series // mark
                point.SecondaryValue = point.Context.Index;
            }
        };

        salesPerDaysSeries.ChartPointPointerDown += SalesPerDaysSeries_ChartPointPointerDown;
        stockSeries.ChartPointPointerDown        += StockSeries_ChartPointPointerDown;

        Series = new ISeries[] { salesPerDaysSeries, stockSeries };
    }
Esempio n. 6
0
 protected override void DrawPath(SeriesBase series, Brush brush, double strokeThickness)
 {
     if (series is StepLineSeries)
     {
         StepLineSeries stepLineSeries = series as StepLineSeries;
         PartsCanvas.Children.Clear();
         foreach (SeriesPartBase t in stepLineSeries.Parts)
         {
             PartsCanvas.Children.Add(t.CreatePart());
         }
     }
 }
Esempio n. 7
0
        public ViewModel()
        {
            lineSeries = new StepLineSeries <double>
            {
                Values = new List <double> {
                    -2, -1, 3, 5, 3, 4, 6
                },
            };

            Series = new List <ISeries>
            {
                lineSeries
            };
        }
Esempio n. 8
0
        public SeriesCollection ToStepLineSeriesCollection()
        {
            SeriesCollection seriesCollection = new SeriesCollection();

            for (int r = 0; r < SeriesD.Count; r++)
            {
                StepLineSeries series = new StepLineSeries();
                ConfigureSeries(series, r);

                seriesCollection.Add(series);
            }

            return(seriesCollection);
        }
Esempio n. 9
0
        private void ResetSeries()
        {
            ObservableCollection <Series> seriesSource = new ObservableCollection <Series>();

            StepLineSeries series = new StepLineSeries();

            series.Title = "United States";
            series.Items = _dataManager.GetPopulationCountBasedOnCountry("United States");
            seriesSource.Add(series);

            series       = new StepLineSeries();
            series.Title = "United Kingdom";
            series.Items = _dataManager.GetPopulationCountBasedOnCountry("United Kingdom");
            seriesSource.Add(series);

            this.Chart.Series = seriesSource;
        }
Esempio n. 10
0
        private SeriesCollection load5(ObservableCollection <Model> tmpCollection)
        {
            ObservableCollection <Model> Collection;
            SeriesCollection             LineSeries;

            LineSeries = new SeriesCollection();
            Collection = new ObservableCollection <Model>();
            //readClimateAnomaly(Collection);
            Collection = tmpCollection;
            StepLineSeries Series1 = new StepLineSeries();

            Series1.XPath        = "XData";
            Series1.YPath        = "YValue";
            Series1.PointsSource = Collection;

            LineSeries.Add(Series1);
            return(LineSeries);
        }
Esempio n. 11
0
        override protected void DrawPath(SeriesBase series, System.Drawing.Pen pen)
        {
            if (series is StepLineSeries)
            {
                StepLineSeries stepLineSeries = series as StepLineSeries;
                var            points         = stepLineSeries.LinePoints;
                var            pointCount     = stepLineSeries.LinePoints.Count;
                if (RenderingMode == Utility.RenderingMode.Default)
                {
                    PartsCanvas.Children.Clear();
                    for (int i = 0; i < stepLineSeries.Parts.Count; i++)
                    {
                        var element = stepLineSeries.Parts[i].CreatePart();
                        if (element != null && !PartsCanvas.Children.Contains(element))
                        {
                            PartsCanvas.Children.Add(element);
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < pointCount - 1; i++)
                    {
                        switch (RenderingMode)
                        {
                        case Utility.RenderingMode.GDIRendering:
                            GDIGraphics.DrawLine(pen, points[i].AsDrawingPointF(), points[i + 1].AsDrawingPointF());
                            break;

                        case Utility.RenderingMode.Default:
                            break;

                        case Utility.RenderingMode.WritableBitmap:
                            WritableBitmapGraphics.DrawLine(pen, points[i].AsDrawingPointF(), points[i + 1].AsDrawingPointF());
                            break;

                        default:
                            break;
                        }
                    }
                    this.Collection.InvalidateBitmap();
                }
            }
        }
Esempio n. 12
0
        private void AddSeries()
        {
            Random random = new Random();

            if (this.Chart.Series.Count < 10)
            {
                StepLineSeries series = new StepLineSeries();
                series.Items.Add(new DataPoint(new DateTime(2006, 1, 1), random.Next(10000000, 100000000)));
                series.Items.Add(new DataPoint(new DateTime(2007, 1, 1), random.Next(10000000, 100000000)));
                series.Items.Add(new DataPoint(new DateTime(2008, 1, 1), random.Next(10000000, 100000000)));
                series.Items.Add(new DataPoint(new DateTime(2009, 1, 1), random.Next(10000000, 100000000)));
                series.Items.Add(new DataPoint(new DateTime(2010, 1, 1), random.Next(10000000, 100000000)));
                series.Items.Add(new DataPoint(new DateTime(2011, 1, 1), random.Next(10000000, 100000000)));
                series.Items.Add(new DataPoint(new DateTime(2012, 1, 1), random.Next(10000000, 100000000)));
                series.Items.Add(new DataPoint(new DateTime(2013, 1, 1), random.Next(10000000, 100000000)));
                series.Items.Add(new DataPoint(new DateTime(2014, 1, 1), random.Next(10000000, 100000000)));
                series.Items.Add(new DataPoint(new DateTime(2015, 1, 1), random.Next(10000000, 100000000)));
                this.Chart.Series.Add(series);
            }
        }
Esempio n. 13
0
        public static StepLineSeries CreateStepLineSeries(DataSeriesViewModel dataSeries, Color color, bool firstSeries)
        {
            StepLineSeries       stepLineSeries = new StepLineSeries();
            SeriesLegendSettings legendSettings = new SeriesLegendSettings()
            {
                Title = dataSeries.Name
            };

            stepLineSeries.LegendSettings  = legendSettings;
            stepLineSeries.CombineMode     = ChartSeriesCombineMode.None;
            stepLineSeries.CategoryBinding = new PropertyNameDataPointBinding()
            {
                PropertyName = "XValue"
            };
            stepLineSeries.ValueBinding = new PropertyNameDataPointBinding()
            {
                PropertyName = "YValue"
            };
            stepLineSeries.ItemsSource           = dataSeries.DataPoints;
            stepLineSeries.TrackBallInfoTemplate = CreateTooltipDataTemplate(dataSeries.Name, firstSeries);
            stepLineSeries.Stroke = new SolidColorBrush(color);
            return(stepLineSeries);
        }
Esempio n. 14
0
        public LineChartPanel(string title, object headerContent = null) : base(title, headerContent)
        {
            Content = new CartesianChart {
                Zoom = ZoomingOptions.Xy
            };


            StepLine = new StepLineSeries
            {
                Values = new ChartValues <double>()
            };

            // TODO: set the AnimationSpeed in style
            Content.AnimationsSpeed = TimeSpan.FromMilliseconds(100);

            //Content.SetDrawMarginWidth(Content.GetDrawMarginElements() * 0.9);

            Content.Series.Add(StepLine);

            //Content.VisualElements.Chart.AxisX[0].MinValue = 10;

            ContentGrid.Margin = new Thickness(5);
        }
        private void cmbAzmon_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            gpChart.Visibility = Visibility.Visible;
            double[] values = new double[] { };

            try
            {
                dynamic getGroupName = cmbGroups.SelectedItem;
                string  gpName       = getGroupName.GroupName;
                dynamic getDateText  = cmbAzmon.SelectedItem;
                string  dPass        = getDateText.DatePass;
                using (var db = new DataClass.myDbContext())
                {
                    dynamic selectedItem = dataGrid.SelectedItems[0];
                    long    uId          = selectedItem.Id;
                    var     data         = db.AHistories.Where(x => x.UserId == uId && x.DatePass == dPass && x.GroupName.Equals(gpName)).Select(x => x).OrderByDescending(x => x.DatePass).ToList();
                    values = new double[] { data.FirstOrDefault().TrueItem, data.FirstOrDefault().FalseItem, data.FirstOrDefault().NoneItem };

                    Series series = new ColumnSeries();

                    switch (FindElement.Settings.ChartType ?? 0)
                    {
                    case 0:
                        series = new ColumnSeries {
                        };
                        break;

                    case 1:
                        series = new StackedColumnSeries {
                        };
                        break;

                    case 2:
                        series = new LineSeries {
                        };
                        break;

                    case 3:
                        series = new StepLineSeries {
                        };
                        break;

                    case 4:
                        series = new StackedAreaSeries {
                        };
                        break;
                    }

                    if (series.GetType() == typeof(ColumnSeries))
                    {
                        AchievementChart.Series.Add(new ColumnSeries
                        {
                            Values          = new ChartValues <double>(values),
                            StrokeDashArray = new System.Windows.Media.DoubleCollection(20)
                        });
                    }
                    else if (series.GetType() == typeof(LineSeries))
                    {
                        AchievementChart.Series.Add(new LineSeries
                        {
                            Values          = new ChartValues <double>(values),
                            StrokeDashArray = new System.Windows.Media.DoubleCollection(20)
                        });
                    }
                    else if (series.GetType() == typeof(StackedAreaSeries))
                    {
                        AchievementChart.Series.Add(new StackedAreaSeries
                        {
                            Values          = new ChartValues <double>(values),
                            StrokeDashArray = new System.Windows.Media.DoubleCollection(20)
                        });
                    }
                    else if (series.GetType() == typeof(StackedColumnSeries))
                    {
                        AchievementChart.Series.Add(new StackedColumnSeries
                        {
                            Values          = new ChartValues <double>(values),
                            StrokeDashArray = new System.Windows.Media.DoubleCollection(20)
                        });
                    }
                    else if (series.GetType() == typeof(StepLineSeries))
                    {
                        AchievementChart.Series.Add(new StepLineSeries
                        {
                            Values          = new ChartValues <double>(values),
                            StrokeDashArray = new System.Windows.Media.DoubleCollection(20)
                        });
                    }

                    AchievementChart.AxisX.Add(new Axis
                    {
                        Labels    = new string[] { "پاسخ صحیح", "پاسخ غلط", "بدون پاسخ" },
                        Separator = new LiveCharts.Wpf.Separator {
                        }
                    });
                    txtName.Text = dPass;
                    txtBook.Text = gpName;
                }
            }
            catch (Exception)
            {
            }
        }
Esempio n. 16
0
        private void OnChartTypeSelectionChanged1(object sender, SelectionChangedEventArgs e)
        {
            if (Basic_Chart != null)
            {
                if (Basic_Chart.Behaviors.Count == 0)
                {
                    Basic_Chart.Behaviors.Add(new ChartZoomPanBehavior());
                }
                (Basic_Chart.SecondaryAxis as NumericalAxis).ClearValue(NumericalAxis.MaximumProperty);
            }
            ComboBox comboBox = sender as ComboBox;

            if (comboBox.SelectedIndex == 0 && viewModel != null)
            {
                Histogram_Chart.Visibility       = Visibility.Collapsed;
                Basic_Chart.Visibility           = Visibility.Visible;
                Column_Chart.Visibility          = Visibility.Collapsed;
                Scatter_Chart.Visibility         = Visibility.Collapsed;
                Waterfall_Chart.Visibility       = Visibility.Collapsed;
                boxWhiskerChart.Visibility       = Visibility.Collapsed;
                SplineRangeArea_Chart.Visibility = Visibility.Collapsed;

                Basic_Chart.PrimaryAxis   = this.primaryAxis;
                Basic_Chart.SecondaryAxis = this.secondaryAxis;
                Basic_Chart.Legend        = this.legend;
                LineSeries series1 = new LineSeries();
                LineSeries series2 = new LineSeries();
                LineSeries series3 = new LineSeries();

                ChartAdornmentInfo adornmentInfo1 = new ChartAdornmentInfo();
                adornmentInfo1.ShowLabel  = false;
                adornmentInfo1.ShowMarker = true;
                adornmentInfo1.Symbol     = ChartSymbol.Ellipse;
                series1.AdornmentsInfo    = adornmentInfo1;

                ChartAdornmentInfo adornmentInfo2 = new ChartAdornmentInfo();
                adornmentInfo2.ShowLabel  = false;
                adornmentInfo2.ShowMarker = true;
                adornmentInfo2.Symbol     = ChartSymbol.Ellipse;
                series2.AdornmentsInfo    = adornmentInfo2;

                ChartAdornmentInfo adornmentInfo3 = new ChartAdornmentInfo();
                adornmentInfo3.ShowLabel  = false;
                adornmentInfo3.ShowMarker = true;
                adornmentInfo3.Symbol     = ChartSymbol.Ellipse;
                series3.AdornmentsInfo    = adornmentInfo3;

                series1.XBindingPath    = "Year";
                series1.YBindingPath    = "IND";
                series1.ItemsSource     = viewModel.power;
                series1.ShowTooltip     = true;
                series1.EnableAnimation = true;
                series1.Label           = "India";

                series2.XBindingPath    = "Year";
                series2.YBindingPath    = "GER";
                series2.ItemsSource     = viewModel.power;
                series2.ShowTooltip     = true;
                series2.EnableAnimation = true;
                series2.Label           = "Germany";

                series3.XBindingPath    = "Year";
                series3.YBindingPath    = "FRA";
                series3.ItemsSource     = viewModel.power;
                series3.EnableAnimation = true;
                series3.ShowTooltip     = true;
                series3.Label           = "France";

                Basic_Chart.Series.Clear();
                Basic_Chart.PrimaryAxis.ZoomFactor   = 1;
                Basic_Chart.SecondaryAxis.ZoomFactor = 1;
                Basic_Chart.Series.Add(series1);
                Basic_Chart.Series.Add(series2);
                Basic_Chart.Series.Add(series3);
            }
            else if (comboBox.SelectedIndex == 1 && viewModel != null)
            {
                Histogram_Chart.Visibility       = Visibility.Collapsed;
                Basic_Chart.Visibility           = Visibility.Visible;
                Column_Chart.Visibility          = Visibility.Collapsed;
                Scatter_Chart.Visibility         = Visibility.Collapsed;
                Waterfall_Chart.Visibility       = Visibility.Collapsed;
                boxWhiskerChart.Visibility       = Visibility.Collapsed;
                SplineRangeArea_Chart.Visibility = Visibility.Collapsed;

                Basic_Chart.PrimaryAxis   = this.primaryAxis;
                Basic_Chart.SecondaryAxis = this.secondaryAxis;
                Basic_Chart.Legend        = this.legend;
                SplineSeries series1 = new SplineSeries();
                SplineSeries series2 = new SplineSeries();
                SplineSeries series3 = new SplineSeries();

                ChartAdornmentInfo adornmentInfo1 = new ChartAdornmentInfo();
                adornmentInfo1.ShowLabel  = false;
                adornmentInfo1.ShowMarker = true;
                adornmentInfo1.Symbol     = ChartSymbol.Ellipse;
                series1.AdornmentsInfo    = adornmentInfo1;

                ChartAdornmentInfo adornmentInfo2 = new ChartAdornmentInfo();
                adornmentInfo2.ShowLabel  = false;
                adornmentInfo2.ShowMarker = true;
                adornmentInfo2.Symbol     = ChartSymbol.Ellipse;
                series2.AdornmentsInfo    = adornmentInfo2;

                ChartAdornmentInfo adornmentInfo3 = new ChartAdornmentInfo();
                adornmentInfo3.ShowLabel  = false;
                adornmentInfo3.ShowMarker = true;
                adornmentInfo3.Symbol     = ChartSymbol.Ellipse;
                series3.AdornmentsInfo    = adornmentInfo3;

                series1.XBindingPath    = "Year";
                series1.YBindingPath    = "IND";
                series1.ItemsSource     = viewModel.power;
                series1.EnableAnimation = true;
                series1.ShowTooltip     = true;
                series1.Label           = "India";

                series2.XBindingPath    = "Year";
                series2.YBindingPath    = "GER";
                series2.ItemsSource     = viewModel.power;
                series2.EnableAnimation = true;
                series2.ShowTooltip     = true;
                series2.Label           = "Germany";

                series3.XBindingPath    = "Year";
                series3.YBindingPath    = "FRA";
                series3.ItemsSource     = viewModel.power;
                series3.EnableAnimation = true;
                series3.ShowTooltip     = true;
                series3.Label           = "France";

                Basic_Chart.Series.Clear();
                Basic_Chart.PrimaryAxis.ZoomFactor   = 1;
                Basic_Chart.SecondaryAxis.ZoomFactor = 1;
                DoubleCollection doubleCollection = new DoubleCollection();
                doubleCollection.Add(5);
                doubleCollection.Add(3);
                series1.StrokeDashArray = doubleCollection;
                series2.StrokeDashArray = doubleCollection;
                series3.StrokeDashArray = doubleCollection;

                Basic_Chart.Series.Add(series1);
                Basic_Chart.Series.Add(series2);
                Basic_Chart.Series.Add(series3);
            }
            else if (comboBox.SelectedIndex == 2)
            {
                Histogram_Chart.Visibility       = Visibility.Collapsed;
                Basic_Chart.Visibility           = Visibility.Collapsed;
                Column_Chart.Visibility          = Visibility.Collapsed;
                Waterfall_Chart.Visibility       = Visibility.Collapsed;
                Scatter_Chart.Visibility         = Visibility.Collapsed;
                boxWhiskerChart.Visibility       = Visibility.Collapsed;
                SplineRangeArea_Chart.Visibility = Visibility.Visible;

                (SplineRangeArea_Chart.Series[0] as AdornmentSeries).AdornmentsInfo = new ChartAdornmentInfo()
                {
                    AdornmentsPosition  = AdornmentsPosition.TopAndBottom,
                    VerticalAlignment   = VerticalAlignment.Center,
                    HorizontalAlignment = HorizontalAlignment.Center,
                    ShowLabel           = true,
                    LabelTemplate       = this.MainGrid.Resources["splineRangeAreaAdornment"] as DataTemplate
                };
            }
            else if (comboBox.SelectedIndex == 3 && viewModel != null)
            {
                Histogram_Chart.Visibility       = Visibility.Collapsed;
                Basic_Chart.Visibility           = Visibility.Collapsed;
                Column_Chart.Visibility          = Visibility.Collapsed;
                Waterfall_Chart.Visibility       = Visibility.Collapsed;
                Scatter_Chart.Visibility         = Visibility.Visible;
                boxWhiskerChart.Visibility       = Visibility.Collapsed;
                SplineRangeArea_Chart.Visibility = Visibility.Collapsed;
            }
            else if (comboBox.SelectedIndex == 4)
            {
                Basic_Chart.Visibility           = Visibility.Collapsed;
                Scatter_Chart.Visibility         = Visibility.Collapsed;
                Column_Chart.Visibility          = Visibility.Collapsed;
                Histogram_Chart.Visibility       = Visibility.Collapsed;
                Waterfall_Chart.Visibility       = Visibility.Collapsed;
                boxWhiskerChart.Visibility       = Visibility.Visible;
                SplineRangeArea_Chart.Visibility = Visibility.Collapsed;
            }
            else if (comboBox.SelectedIndex == 5 && viewModel != null)
            {
                Histogram_Chart.Visibility       = Visibility.Collapsed;
                Basic_Chart.Visibility           = Visibility.Collapsed;
                Column_Chart.Visibility          = Visibility.Visible;
                Scatter_Chart.Visibility         = Visibility.Collapsed;
                Waterfall_Chart.Visibility       = Visibility.Collapsed;
                boxWhiskerChart.Visibility       = Visibility.Collapsed;
                SplineRangeArea_Chart.Visibility = Visibility.Collapsed;
            }
            else if (comboBox.SelectedIndex == 6 && viewModel != null)
            {
                Histogram_Chart.Visibility       = Visibility.Collapsed;
                Basic_Chart.Visibility           = Visibility.Visible;
                Column_Chart.Visibility          = Visibility.Collapsed;
                Scatter_Chart.Visibility         = Visibility.Collapsed;
                Waterfall_Chart.Visibility       = Visibility.Collapsed;
                boxWhiskerChart.Visibility       = Visibility.Collapsed;
                SplineRangeArea_Chart.Visibility = Visibility.Collapsed;

                Basic_Chart.PrimaryAxis   = this.primaryAxis;
                Basic_Chart.SecondaryAxis = this.secondaryAxis;
                Basic_Chart.Legend        = this.legend;
                StepLineSeries series1 = new StepLineSeries();
                StepLineSeries series2 = new StepLineSeries();
                StepLineSeries series3 = new StepLineSeries();

                ChartAdornmentInfo adornmentInfo1 = new ChartAdornmentInfo();
                adornmentInfo1.ShowLabel  = false;
                adornmentInfo1.ShowMarker = true;
                adornmentInfo1.Symbol     = ChartSymbol.Ellipse;
                series1.AdornmentsInfo    = adornmentInfo1;

                ChartAdornmentInfo adornmentInfo2 = new ChartAdornmentInfo();
                adornmentInfo2.ShowLabel  = false;
                adornmentInfo2.ShowMarker = true;
                adornmentInfo2.Symbol     = ChartSymbol.Ellipse;
                series2.AdornmentsInfo    = adornmentInfo2;

                ChartAdornmentInfo adornmentInfo3 = new ChartAdornmentInfo();
                adornmentInfo3.ShowLabel  = false;
                adornmentInfo3.ShowMarker = true;
                adornmentInfo3.Symbol     = ChartSymbol.Ellipse;
                series3.AdornmentsInfo    = adornmentInfo3;

                series1.XBindingPath = "Year";
                series1.YBindingPath = "IND";
                series1.ShowTooltip  = true;
                series1.ItemsSource  = viewModel.power;
                series1.Label        = "India";

                series2.XBindingPath = "Year";
                series2.YBindingPath = "GER";
                series2.ItemsSource  = viewModel.power;
                series2.ShowTooltip  = true;
                series2.Label        = "Germany";

                series3.XBindingPath = "Year";
                series3.YBindingPath = "FRA";
                series3.ItemsSource  = viewModel.power;
                series3.ShowTooltip  = true;
                series3.Label        = "France";

                Basic_Chart.Series.Clear();
                Basic_Chart.PrimaryAxis.ZoomFactor   = 1;
                Basic_Chart.SecondaryAxis.ZoomFactor = 1;
                Basic_Chart.Series.Add(series1);
                Basic_Chart.Series.Add(series2);
                Basic_Chart.Series.Add(series3);
            }
            else if (comboBox.SelectedIndex == 7 && viewModel != null)
            {
                Histogram_Chart.Visibility       = Visibility.Collapsed;
                Basic_Chart.Visibility           = Visibility.Visible;
                Column_Chart.Visibility          = Visibility.Collapsed;
                Scatter_Chart.Visibility         = Visibility.Collapsed;
                Waterfall_Chart.Visibility       = Visibility.Collapsed;
                boxWhiskerChart.Visibility       = Visibility.Collapsed;
                SplineRangeArea_Chart.Visibility = Visibility.Collapsed;

                Basic_Chart.PrimaryAxis   = this.primaryAxis;
                Basic_Chart.SecondaryAxis = this.secondaryAxis;
                Basic_Chart.Legend        = this.legend;
                StepAreaSeries     series1        = new StepAreaSeries();
                StepAreaSeries     series2        = new StepAreaSeries();
                DataTemplate       template1      = MainGrid.Resources["labelTemplateStepArea"] as DataTemplate;
                DataTemplate       template2      = MainGrid.Resources["labelTemplateStepArea1"] as DataTemplate;
                ChartAdornmentInfo adornmentInfo1 = new ChartAdornmentInfo
                {
                    ShowLabel     = true,
                    LabelTemplate = template1,
                };
                ChartAdornmentInfo adornmentInfo2 = new ChartAdornmentInfo
                {
                    ShowLabel     = true,
                    LabelTemplate = template2,
                };

                series1.AdornmentsInfo  = adornmentInfo1;
                series1.XBindingPath    = "Year";
                series1.YBindingPath    = "AUS";
                series1.Label           = "Australia";
                series1.ItemsSource     = viewModel.power;
                series1.StrokeThickness = 2;
                series1.Stroke          = new SolidColorBrush(Color.FromArgb(0xFF, 0x99, 0xDE, 0x4A));
                series1.Interior        = new SolidColorBrush(Color.FromArgb(0x78, 0x99, 0xDE, 0x4A));
                series1.ShowTooltip     = true;
                series2.AdornmentsInfo  = adornmentInfo2;
                series2.XBindingPath    = "Year";
                series2.YBindingPath    = "UK";
                series2.Label           = "UK";
                series2.ItemsSource     = viewModel.power;
                series2.StrokeThickness = 2;
                series2.Stroke          = new SolidColorBrush(Color.FromArgb(0xFF, 0xA4, 0xC5, 0xF4));
                series2.Interior        = new SolidColorBrush(Color.FromArgb(0x78, 0xA4, 0xC5, 0xF4));
                series2.ShowTooltip     = true;
                Basic_Chart.Series.Clear();
                Basic_Chart.PrimaryAxis.ZoomFactor   = 1;
                Basic_Chart.SecondaryAxis.ZoomFactor = 1;
                Basic_Chart.Series.Add(series1);
                Basic_Chart.Series.Add(series2);
            }
            else if (comboBox.SelectedIndex == 8)
            {
                Basic_Chart.Visibility           = Visibility.Collapsed;
                Scatter_Chart.Visibility         = Visibility.Collapsed;
                Column_Chart.Visibility          = Visibility.Collapsed;
                Histogram_Chart.Visibility       = Visibility.Visible;
                boxWhiskerChart.Visibility       = Visibility.Collapsed;
                Waterfall_Chart.Visibility       = Visibility.Collapsed;
                SplineRangeArea_Chart.Visibility = Visibility.Collapsed;
            }
            else
            {
                Basic_Chart.Visibility           = Visibility.Collapsed;
                Scatter_Chart.Visibility         = Visibility.Collapsed;
                Column_Chart.Visibility          = Visibility.Collapsed;
                Histogram_Chart.Visibility       = Visibility.Collapsed;
                boxWhiskerChart.Visibility       = Visibility.Collapsed;
                Waterfall_Chart.Visibility       = Visibility.Visible;
                SplineRangeArea_Chart.Visibility = Visibility.Collapsed;
            }
        }
Esempio n. 17
0
        void Update()
        {
            chart.Series.Clear();
            for (int r = 0; r < dt.Rows.Count; r++)
            {
                Series CSeries;

                if (Ctype == ChartType.Chart_Type.PieChart)
                {
                    CSeries = new PieSeries();
                }
                else if (Ctype == ChartType.Chart_Type.ColumnChart)
                {
                    CSeries = new ColumnSeries();
                }
                else if (Ctype == ChartType.Chart_Type.RowChart)
                {
                    CSeries = new RowSeries();
                }
                else if (Ctype == ChartType.Chart_Type.StackedColumnChart)
                {
                    CSeries = new StackedColumnSeries();
                }
                else if (Ctype == ChartType.Chart_Type.StackedRowChart)
                {
                    CSeries = new StackedRowSeries();
                }
                else if (Ctype == ChartType.Chart_Type.StackedAreaChart)
                {
                    CSeries = new StackedAreaSeries();
                }
                else if (Ctype == ChartType.Chart_Type.StepLineChart)
                {
                    CSeries = new StepLineSeries();
                }
                else
                {
                    CSeries = new LineSeries();
                }

                CSeries.Values = new ChartValues <double> {
                };
                for (int c = 0; c < dt.Columns.Count; c++)
                {
                    // Debug.WriteLine(dt.Rows[r].Field<double?>(c));
                    if (dt.Rows[r].Field <double?>(c) != null)
                    {
                        CSeries.Values.Add(dt.Rows[r].Field <double>(c));
                    }
                }//columns

                if (r < ListBox_Customization.Items.Count)
                {
                    StackPanel panel = (StackPanel)ListBox_Customization.Items[r];
                    CSeries.Title      = ((TextBox)panel.Children[0]).Text;
                    CSeries.DataLabels = (((CheckBox)panel.Children[1]).IsChecked == true);

                    double size = 10;
                    if (double.TryParse(((TextBox)panel.Children[2]).Text, out size) == false)
                    {
                        size = 10;
                    }

                    CSeries.FontSize = size;
                    CSeries.Stroke   = ((Rectangle)((StackPanel)panel.Children[3]).Children[0]).Fill;
                    double sth = 0;
                    if (double.TryParse(((TextBox)panel.Children[4]).Text, out sth))
                    {
                        CSeries.StrokeThickness = sth;
                    }

                    /*
                     * if ((((CheckBox)panel.Children[4]).IsChecked == true))
                     *  CSeries.Fill = ((Rectangle)((StackPanel)panel.Children[5]).Children[0]).Fill;
                     * else
                     *  CSeries.Fill = null;*/
                }
                else
                {
                    CSeries.Title      = "R" + r;
                    CSeries.DataLabels = true;
                }

                chart.Series.Add(CSeries);
            }//rows


            if (RB_CusColors.IsChecked == true)
            {
                ColorsCollection colorsCollection = new ColorsCollection();

                for (int i = 0; i < ListBox_Colors.Items.Count; i++)
                {
                    StackPanel stack = (StackPanel)ListBox_Colors.Items[i];
                    colorsCollection.Add(((SolidColorBrush)((Rectangle)stack.Children[0]).Fill).Color);
                }

                chart.SeriesColors = colorsCollection;
            }
            else
            {
                chart.SeriesColors = null;
            }
        }
Esempio n. 18
0
        private void displayChart()
        {
            int numPoints = (int)this.ActualWidth / 2;
            var xValues   = ViewModel.GetTimeSeries(numPoints);

            var maxHeartRate    = ViewModel.MaxHeartRate;
            var maxSpeed        = ViewModel.MaxSpeedKmH;
            var maxCadence      = ViewModel.MaxCadence;
            var maxElevation    = ViewModel.MaxElevation;
            var maxStrideLength = ViewModel.MaxStrideLengthM;

            TimeChart.AxisY.Clear();

            bool showAnySpeed        = ViewModel.DoShowSpeed || ViewModel.DoShowTargetSpeed;
            bool showAnyHeartRate    = ViewModel.DoShowHeartRate;
            bool showAnyPace         = ViewModel.DoShowPace || ViewModel.DoShowTargetPace;
            bool showAnyElevation    = ViewModel.DoShowElevation || ViewModel.DoShowElevationChange;
            bool showAnyCadence      = ViewModel.DoShowCadence;
            bool showAnyStrideLength = ViewModel.DoShowStrideLength;

            int speedAxisIndex        = -1;
            int heartRateAxisIndex    = -1;
            int paceAxisIndex         = -1;
            int elevationAxisIndex    = -1;
            int cadenceAxisIndex      = -1;
            int strideLengthAxisIndex = -1;

            if (showAnySpeed)
            {
                var speedAxis = new Axis()
                {
                    Title          = "Speed",
                    Foreground     = System.Windows.Media.Brushes.DodgerBlue,
                    LabelFormatter = value =>
                    {
                        return(value.ToString("0.0"));
                    }
                };
                speedAxisIndex = TimeChart.AxisY.Count;
                TimeChart.AxisY.Add(speedAxis);
            }
            if (showAnyHeartRate)
            {
                var heartRateAxis = new Axis()
                {
                    Title          = "HeartRate (bpm)",
                    Foreground     = System.Windows.Media.Brushes.IndianRed,
                    LabelFormatter = value =>
                    {
                        return(value.ToString("0"));
                    },
                    Position = AxisPosition.RightTop
                };
                heartRateAxisIndex = TimeChart.AxisY.Count;
                TimeChart.AxisY.Add(heartRateAxis);
            }
            if (showAnyPace)
            {
                var paceAxis = new Axis()
                {
                    Title          = "Pace (min/km)",
                    Foreground     = System.Windows.Media.Brushes.DarkOliveGreen,
                    LabelFormatter = value => new Pace(value).ToString(),
                };
                paceAxisIndex = TimeChart.AxisY.Count;
                TimeChart.AxisY.Add(paceAxis);
            }
            if (showAnyElevation)
            {
                var elevationAxis = new Axis()
                {
                    Title          = "Elevation (m)",
                    Foreground     = System.Windows.Media.Brushes.Black,
                    LabelFormatter = value => value.ToString("0"),
                    Position       = AxisPosition.RightTop
                };
                elevationAxisIndex = TimeChart.AxisY.Count;
                TimeChart.AxisY.Add(elevationAxis);
            }
            if (showAnyCadence)
            {
                var cadenceAxis = new Axis()
                {
                    Title          = "Cadence (steps/min)",
                    Foreground     = System.Windows.Media.Brushes.Magenta,
                    LabelFormatter = value => value.ToString("0"),
                    Position       = AxisPosition.RightTop
                };
                cadenceAxisIndex = TimeChart.AxisY.Count;
                TimeChart.AxisY.Add(cadenceAxis);
            }
            if (showAnyStrideLength)
            {
                var strideLength = new Axis()
                {
                    Title          = "StrideLength (m)",
                    Foreground     = System.Windows.Media.Brushes.Teal,
                    LabelFormatter = value => value.ToString("0.0"),
                    Position       = AxisPosition.RightTop
                };
                strideLengthAxisIndex = TimeChart.AxisY.Count;
                TimeChart.AxisY.Add(strideLength);
            }

            var seriesCollection = new SeriesCollection();

            TimeChart.Series.Clear();

            if (ViewModel.DoShowSpeed)
            {
                var speeds = ViewModel.GetTimeLine <double>(nameof(TrackPoint.SpeedKmH), numPoints);
                var series = new LineSeries
                {
                    Title          = "Speed",
                    Values         = new ChartValues <double>(speeds),
                    PointGeometry  = null,
                    Fill           = Brushes.Transparent,
                    LineSmoothness = 1,
                    Stroke         = TimeChart.AxisY[speedAxisIndex].Foreground,
                    ScalesYAt      = speedAxisIndex
                };
                seriesCollection.Add(series);
            }

            if (ViewModel.DoShowPace)
            {
                var speeds = ViewModel.GetTimeLine <double>(nameof(TrackPoint.SpeedKmH), numPoints);
                var series = new LineSeries
                {
                    Title          = "Pace",
                    Values         = new ChartValues <double>(speeds),
                    PointGeometry  = null,
                    Fill           = Brushes.Transparent,
                    LineSmoothness = 1,
                    LabelPoint     = chartPoint => $"{new Pace(chartPoint.Y).ToString()}min/km",
                    Stroke         = TimeChart.AxisY[paceAxisIndex].Foreground,
                    ScalesYAt      = paceAxisIndex
                };
                seriesCollection.Add(series);
            }

            if (ViewModel.DoShowHeartRate)
            {
                var heartRates = ViewModel.GetTimeLine <int>(nameof(TrackPoint.HeartRateBpm), numPoints).Select(hr => ((double)hr)).ToList();
                var series     = new LineSeries
                {
                    Title          = "HeartRate",
                    Values         = new ChartValues <double>(heartRates),
                    PointGeometry  = null,
                    Fill           = Brushes.Transparent,
                    LineSmoothness = 0,
                    LabelPoint     = chartPoint => $"{chartPoint.Y.ToString("0")}bpm",
                    Stroke         = TimeChart.AxisY[heartRateAxisIndex].Foreground,
                    ScalesYAt      = heartRateAxisIndex
                };
                seriesCollection.Add(series);
            }

            if (ViewModel.DoShowTargetSpeed)
            {
                var targetSpeeds = ViewModel.GetTimeLine <double>(nameof(LapViewModel.TargetSpeed), numPoints);
                var series       = new StepLineSeries
                {
                    Title             = "Target Speed",
                    Fill              = Brushes.Transparent,
                    Values            = new ChartValues <double>(targetSpeeds),
                    PointGeometry     = null,
                    AlternativeStroke = Brushes.Transparent,
                    Stroke            = TimeChart.AxisY[speedAxisIndex].Foreground.Clone(),
                    ScalesYAt         = speedAxisIndex
                };
                series.Stroke.Opacity = 0.7;
                seriesCollection.Add(series);
            }

            if (ViewModel.DoShowTargetPace)
            {
                var targetSpeeds = ViewModel.GetTimeLine <double>(nameof(LapViewModel.TargetSpeed), numPoints);
                var series       = new StepLineSeries
                {
                    Title             = "Target Pace",
                    Fill              = Brushes.Transparent,
                    Values            = new ChartValues <double>(targetSpeeds),
                    PointGeometry     = null,
                    AlternativeStroke = Brushes.Transparent,
                    LabelPoint        = chartPoint => $"{new Pace(chartPoint.Y).ToString()}min/km",
                    Stroke            = TimeChart.AxisY[paceAxisIndex].Foreground.Clone(),
                    ScalesYAt         = paceAxisIndex
                };
                series.Stroke.Opacity = 0.7;
                seriesCollection.Add(series);
            }

            if (ViewModel.DoShowCadence)
            {
                if (maxCadence > 0)
                {
                    var cadences = ViewModel.GetTimeLine <double>(nameof(TrackPoint.RunCadence), numPoints);
                    cadences = cadences.Select(c => c * 2).ToList();
                    var series = new LineSeries
                    {
                        Title          = "Cadence",
                        Values         = new ChartValues <double>(cadences),
                        PointGeometry  = null,
                        Fill           = Brushes.Transparent,
                        LineSmoothness = 0,
                        LabelPoint     = chartPoint => $"{chartPoint.Y.ToString("0")} steps/min",
                        Stroke         = TimeChart.AxisY[cadenceAxisIndex].Foreground,
                        ScalesYAt      = cadenceAxisIndex
                    };
                    seriesCollection.Add(series);
                }
            }

            if (ViewModel.DoShowStrideLength)
            {
                if (maxStrideLength > 0)
                {
                    var strideLengths = ViewModel.GetTimeLine <double>(nameof(TrackPoint.StrideLengthM), numPoints);
                    var series        = new LineSeries
                    {
                        Title          = "StrideLength",
                        Values         = new ChartValues <double>(strideLengths),
                        PointGeometry  = null,
                        Fill           = Brushes.Transparent,
                        LineSmoothness = 0,
                        LabelPoint     = chartPoint => $"{chartPoint.Y.ToString("0.0")} m",
                        Stroke         = TimeChart.AxisY[strideLengthAxisIndex].Foreground,
                        ScalesYAt      = strideLengthAxisIndex
                    };
                    seriesCollection.Add(series);
                }
            }

            if (ViewModel.DoShowElevation)
            {
                if (maxElevation > 0)
                {
                    var elevations = ViewModel.GetTimeLine <double>(nameof(TrackPoint.AltitudeMeters), numPoints);
                    var series     = new LineSeries
                    {
                        Title          = "Elevation",
                        Values         = new ChartValues <double>(elevations),
                        PointGeometry  = null,
                        Fill           = Brushes.Transparent,
                        LineSmoothness = 0,
                        LabelPoint     = chartPoint => $"{chartPoint.Y.ToString("0.0")} m",
                        Stroke         = TimeChart.AxisY[elevationAxisIndex].Foreground,
                        ScalesYAt      = elevationAxisIndex
                    };
                    seriesCollection.Add(series);
                }
            }

            if (ViewModel.DoShowElevationChange && ViewModel.Laps.SelectMany(l => l.TrackPoints).Any())
            {
                if (maxElevation > 0 && maxSpeed > 0)
                {
                    var elevations       = ViewModel.GetTimeLine <double>(nameof(TrackPoint.AltitudeMeters), numPoints).ToList();
                    var elevationChanges = new List <Double>();
                    elevationChanges.Add(0);
                    for (int i = 1; i < elevations.Count; i++)
                    {
                        elevationChanges.Add(elevations[i] - elevations[i - 1]);
                    }

                    var maxChange         = elevationChanges.Max();
                    var minChange         = elevationChanges.Min();
                    var totalChangeExtent = maxChange - minChange;
                    if (totalChangeExtent > 0)
                    {
                        var series = new LineSeries
                        {
                            Title          = "Elevation Change",
                            Values         = new ChartValues <double>(elevationChanges),
                            PointGeometry  = null,
                            Fill           = Brushes.Transparent,
                            LineSmoothness = 0,
                            LabelPoint     = chartPoint => $"{chartPoint.Y} m",
                            Stroke         = TimeChart.AxisY[elevationAxisIndex].Foreground.Clone(),
                            ScalesYAt      = elevationAxisIndex
                        };
                        series.Stroke.Opacity = 0.7;
                        seriesCollection.Add(series);
                    }
                }
            }

            TimeChart.Series.AddRange(seriesCollection);

            TimeChart.AxisX.Clear();
            var timeAxis = new Axis()
            {
                Labels = xValues.Select(b => b.ToString()).ToArray()
            };

            TimeChart.AxisX.Add(timeAxis);

            TimeChart.Zoom = ZoomingOptions.X;
        }
Esempio n. 19
0
        public void SetLineSeries(DataPtSet PollenDataSet, SeriesChartType ChartMode)
        {
            DataList  = PollenDataSet;
            ChartType = ChartMode;

            List <double>     DbList      = new List <double>();
            LineSeries        tLineSeries = new LineSeries();
            StackedAreaSeries tAreaSeries = new StackedAreaSeries();

            tLineSeries.PointGeometry = DefaultGeometries.None;
            tLineSeries.Fill          = null;
            tAreaSeries.PointGeometry = DefaultGeometries.None;
            tAreaSeries.Fill          = null;

            tLineSeries = (SetProperties(tLineSeries, DataList.Points[0]));
            tAreaSeries = (SetProperties(tAreaSeries, DataList.Points[0]));

            switch (ChartType)
            {
            case SeriesChartType.Point:

                ChartSequence = (SetProperties(tLineSeries, DataList.Points[0]));
                foreach (DataPt D in DataList.Points)
                {
                    LineSeries NewSeries = new LineSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.Line:

                tLineSeries.Fill           = Brushes.Transparent;
                tLineSeries.LineSmoothness = 0;
                ChartSequence = tLineSeries;
                foreach (DataPt D in DataList.Points)
                {
                    DbList.Add(D.Number);
                    LineSeries NewSeries = new LineSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.Spline:
                tLineSeries.Fill = Brushes.Transparent;
                ChartSequence    = tLineSeries;
                foreach (DataPt D in DataList.Points)
                {
                    LineSeries NewSeries = new LineSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.StepLine:
                StepLineSeries StepSeries = new StepLineSeries();
                StepSeries.AlternativeStroke = DataList.Points[0].Graphics.GetStrokeBrush();
                StepSeries = SetProperties(StepSeries, DataList.Points[0]);

                ChartSequence = StepSeries;
                foreach (DataPt D in DataList.Points)
                {
                    StepLineSeries NewSeries = new StepLineSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.Area:
                ChartSequence = tLineSeries;
                foreach (DataPt D in DataList.Points)
                {
                    LineSeries NewSeries = new LineSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.AreaStack:
                tAreaSeries.LineSmoothness = 0;
                ChartSequence = tAreaSeries;
                foreach (DataPt D in DataList.Points)
                {
                    StackedAreaSeries NewSeries = new StackedAreaSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.AreaStack100:
                tAreaSeries.LineSmoothness = 0;
                tAreaSeries.StackMode      = StackMode.Percentage;
                ChartSequence = tAreaSeries;
                foreach (DataPt D in DataList.Points)
                {
                    StackedAreaSeries NewSeries = new StackedAreaSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.SplineArea:
                ChartSequence = tLineSeries;
                foreach (DataPt D in DataList.Points)
                {
                    LineSeries NewSeries = new LineSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.SplineAreaStack:
                ChartSequence = tAreaSeries;
                foreach (DataPt D in DataList.Points)
                {
                    StackedAreaSeries NewSeries = new StackedAreaSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.SplineAreaStack100:
                tAreaSeries.StackMode = StackMode.Percentage;
                ChartSequence         = tAreaSeries;
                foreach (DataPt D in DataList.Points)
                {
                    StackedAreaSeries NewSeries = new StackedAreaSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;
            }
            ChartSequence.Values = new ChartValues <double>(DbList.ToArray());
            //Set unique properties of the control
        }
Esempio n. 20
0
        private void dataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                dynamic selectedItem = dataGrid.SelectedItems[0];

                waterfallFlow.Children.Clear();
                Series series = new ColumnSeries();

                switch (FindElement.Settings.ChartType ?? 0)
                {
                case 0:
                    series = new ColumnSeries {
                    };
                    break;

                case 1:
                    series = new StackedColumnSeries {
                    };
                    break;

                case 2:
                    series = new LineSeries {
                    };
                    break;

                case 3:
                    series = new StepLineSeries {
                    };
                    break;

                case 4:
                    series = new StackedAreaSeries {
                    };
                    break;
                }

                getStudentScore(selectedItem.Id); // get Student scores

                //get scores merge duplicates and replace string to int
                var score = _initialCollection.GroupBy(x => new { x.Book, x.Date, x.StudentId })
                            .Select(x => new
                {
                    x.Key.StudentId,
                    x.Key.Book,
                    x.Key.Date,
                    Sum = x.Sum(y => AppVariable.EnumToNumber(y.Scores))
                }).ToArray();

                //get Book Count for generate chart
                var bookCount = score.GroupBy(x => new { x.Book })
                                .Select(g => new
                {
                    g.Key.Book
                }).ToList();

                MaterialChart _addUser;
                Control       _currentUser;

                //generate chart based on count of books
                foreach (var item in bookCount)
                {
                    _addUser     = new MaterialChart(item.Book, selectedItem.Name + " " + selectedItem.LName, getDateArray(item.Book), getScoreArray(item.Book), getAverage(item.Book), getAverageStatus(item.Book), series, AppVariable.GetBrush(FindElement.Settings.ChartColor ?? AppVariable.CHART_GREEN));
                    _currentUser = _addUser;
                    waterfallFlow.Children.Add(_currentUser);
                }

                waterfallFlow.Refresh();
            }
            catch (ArgumentNullException) { }
            catch (NullReferenceException)
            {
            }
        }
Esempio n. 21
0
        public override View GetSampleContent(Context context)
        {
            chart                = new SfChart(context);
            chart.Title.Text     = "Unemployment Rates 1975-2010";
            chart.Title.TextSize = 15;
            chart.SetBackgroundColor(Color.White);
            chart.ColorModel.ColorPalette = ChartColorPalette.Natural;

            chart.Legend.Visibility             = Visibility.Visible;
            chart.Legend.DockPosition           = ChartDock.Bottom;
            chart.Legend.IconHeight             = 14;
            chart.Legend.IconWidth              = 14;
            chart.Legend.ToggleSeriesVisibility = true;

            NumericalAxis numericalAxis = new NumericalAxis();

            numericalAxis.EdgeLabelsDrawingMode = EdgeLabelsDrawingMode.Shift;
            numericalAxis.Minimum                 = 1975;
            numericalAxis.Maximum                 = 2010;
            numericalAxis.Interval                = 5;
            numericalAxis.ShowMajorGridLines      = false;
            numericalAxis.PlotOffset              = 10;
            numericalAxis.AxisLineOffset          = 10;
            numericalAxis.MajorTickStyle.TickSize = 10;
            chart.PrimaryAxis = numericalAxis;

            NumericalAxis numericalaxis = new NumericalAxis();

            numericalaxis.Minimum  = 0;
            numericalaxis.Maximum  = 20;
            numericalaxis.Interval = 5;
            numericalaxis.LineStyle.StrokeWidth   = 0;
            numericalaxis.MajorTickStyle.TickSize = 0;
            numericalaxis.LabelStyle.LabelFormat  = "#'%'";
            chart.SecondaryAxis = numericalaxis;

            StepLineSeries stepLineSeries1 = new StepLineSeries();

            stepLineSeries1.ItemsSource                  = MainPage.GetStepLineData1();
            stepLineSeries1.XBindingPath                 = "XValue";
            stepLineSeries1.YBindingPath                 = "YValue";
            stepLineSeries1.Label                        = "China";
            stepLineSeries1.DataMarker.ShowMarker        = true;
            stepLineSeries1.DataMarker.MarkerColor       = Color.White;
            stepLineSeries1.DataMarker.MarkerWidth       = 10;
            stepLineSeries1.DataMarker.MarkerHeight      = 10;
            stepLineSeries1.DataMarker.MarkerStrokeColor = Color.ParseColor("#00bdae");
            stepLineSeries1.DataMarker.MarkerStrokeWidth = 2;
            stepLineSeries1.LegendIcon                   = ChartLegendIcon.SeriesType;
            stepLineSeries1.StrokeWidth                  = 3;
            stepLineSeries1.TooltipEnabled               = true;

            StepLineSeries stepLineSeries2 = new StepLineSeries();

            stepLineSeries2.ItemsSource                  = MainPage.GetStepLineData2();
            stepLineSeries2.XBindingPath                 = "XValue";
            stepLineSeries2.YBindingPath                 = "YValue";
            stepLineSeries2.Label                        = "Australia";
            stepLineSeries2.DataMarker.ShowMarker        = true;
            stepLineSeries2.DataMarker.MarkerColor       = Color.White;
            stepLineSeries2.DataMarker.MarkerWidth       = 10;
            stepLineSeries2.DataMarker.MarkerHeight      = 10;
            stepLineSeries2.DataMarker.MarkerStrokeColor = Color.ParseColor("#404041");
            stepLineSeries2.DataMarker.MarkerStrokeWidth = 2;
            stepLineSeries2.LegendIcon                   = ChartLegendIcon.SeriesType;
            stepLineSeries2.StrokeWidth                  = 3;
            stepLineSeries2.TooltipEnabled               = true;

            stepLineSeries1.EnableAnimation = true;
            stepLineSeries2.EnableAnimation = true;

            chart.Series.Add(stepLineSeries1);
            chart.Series.Add(stepLineSeries2);
            return(chart);
        }
Esempio n. 22
0
        private void InitChart()
        {
            try
            {
                ChartBrushes = new List <Brush>();
                ChartBrushes.Add(Brushes.Blue);
                ChartBrushes.Add(Brushes.Green);
                ChartBrushes.Add(Brushes.LightSalmon);
                ChartBrushes.Add(Brushes.DarkRed);
                ChartBrushes.Add(Brushes.Gold);
                ChartBrushes.Add(Brushes.CadetBlue);
                ChartBrushes.Add(Brushes.Coral);
                ChartBrushes.Add(Brushes.Crimson);
                ChartBrushes.Add(Brushes.Indigo);
                ChartBrushes.Add(Brushes.PaleGreen);
                ChartBrushes.Add(Brushes.OrangeRed);
                ChartBrushes.Add(Brushes.Purple);
                ChartBrushes.Add(Brushes.Fuchsia);
                ChartBrushes.Add(Brushes.AliceBlue);
                ChartBrushes.Add(Brushes.Orange);
                ChartBrushes.Add(Brushes.Purple);
                ChartBrushes.Add(Brushes.Chartreuse);
                ChartBrushes.Add(Brushes.MediumBlue);
                ChartBrushes.Add(Brushes.Chocolate);

                int countItems = ItemsId.Count;

                if (ItemsId != null)
                {
                    for (int i = 0; i < countItems; i++)
                    {
                        switch (ChartType)
                        {
                        case ChartType.AreaSeries:
                            Chart.Series.Add(new AreaSeries());
                            AreaSeries series1 = (AreaSeries)this.Chart.Series[i];
                            series1.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series1.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            series1.Stroke          = ChartBrushes[i];
                            series1.StrokeThickness = 2;
                            break;

                        case ChartType.LineSeries:
                            Chart.Series.Add(new LineSeries());
                            LineSeries series2 = (LineSeries)this.Chart.Series[i];
                            series2.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series2.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            series2.Stroke          = ChartBrushes[i];
                            series2.StrokeThickness = 2;
                            break;

                        case ChartType.PointSeries:
                            Chart.Series.Add(new PointSeries());
                            PointSeries series3 = (PointSeries)this.Chart.Series[i];
                            series3.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series3.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            break;

                        case ChartType.SplineAreaSeries:
                            Chart.Series.Add(new SplineAreaSeries());
                            SplineAreaSeries series4 = (SplineAreaSeries)this.Chart.Series[i];
                            series4.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series4.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            series4.Stroke          = ChartBrushes[i];
                            series4.StrokeThickness = 2;
                            break;

                        case ChartType.SplineSeries:
                            Chart.Series.Add(new SplineSeries());
                            SplineSeries series5 = (SplineSeries)this.Chart.Series[i];
                            series5.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series5.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            series5.Stroke          = ChartBrushes[i];
                            series5.StrokeThickness = 2;
                            break;

                        case ChartType.StepAreaSeries:
                            Chart.Series.Add(new StepAreaSeries());
                            StepAreaSeries series6 = (StepAreaSeries)this.Chart.Series[i];
                            series6.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series6.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            series6.Stroke          = ChartBrushes[i];
                            series6.StrokeThickness = 2;
                            break;

                        case ChartType.StepLineSeries:
                            Chart.Series.Add(new StepLineSeries());
                            StepLineSeries series7 = (StepLineSeries)this.Chart.Series[i];
                            series7.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series7.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            series7.Stroke          = ChartBrushes[i];
                            series7.StrokeThickness = 2;
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.LogIndustrialMonitoring(ex);
            }
        }
Esempio n. 23
0
        void WindowChartHistory_ShowDataCompleted(object sender, ShowDataCompletedEventArgs e)
        {
            try
            {
                if (ItemsId.Count == 1)
                {
                    TextBlockTitle.Text = string.Format("{0} {1}-{2}", e.CurrentItem.ItemName, this.StartTime.ToString(), this.EndTime.ToString());
                }
                else
                {
                    TextBlockTitle.Text = string.Format("Compare {0}-{1}", this.StartTime.ToString(), this.EndTime.ToString());
                }

                switch (ChartType)
                {
                case ChartType.AreaSeries:
                    AreaSeries series1 = (AreaSeries)this.Chart.Series[e.ItemId.Key];
                    series1.ItemsSource = e.Data;
                    break;

                case ChartType.LineSeries:
                    LineSeries series2 = (LineSeries)this.Chart.Series[e.ItemId.Key];
                    series2.ItemsSource = e.Data;
                    break;

                case ChartType.PointSeries:
                    PointSeries series3 = (PointSeries)this.Chart.Series[e.ItemId.Key];
                    series3.ItemsSource = e.Data;
                    break;

                case ChartType.SplineAreaSeries:
                    SplineAreaSeries series4 = (SplineAreaSeries)this.Chart.Series[e.ItemId.Key];
                    series4.ItemsSource = e.Data;
                    break;

                case ChartType.SplineSeries:
                    SplineSeries series5 = (SplineSeries)this.Chart.Series[e.ItemId.Key];
                    series5.ItemsSource = e.Data;
                    break;

                case ChartType.StepAreaSeries:
                    StepAreaSeries series6 = (StepAreaSeries)this.Chart.Series[e.ItemId.Key];
                    series6.ItemsSource = e.Data;
                    break;

                case ChartType.StepLineSeries:
                    StepLineSeries series7 = (StepLineSeries)this.Chart.Series[e.ItemId.Key];
                    series7.ItemsSource = e.Data;
                    break;
                }

                Chart.Zoom = new Size(1, 1);

                if (e.GenerateLegend)
                {
                    ChartLegend.Items.Add(new LegendItem()
                    {
                        MarkerFill = ChartBrushes[e.ItemId.Key], Title = e.CurrentItem.ItemName
                    });
                }

                BusyIndicator.IsBusy = false;
            }
            catch (Exception ex)
            {
                Logger.LogIndustrialMonitoring(ex);
            }
        }
Esempio n. 24
0
        public override View GetSampleContent(Context context)
        {
            chart                = new SfChart(context);
            chart.Title.Text     = "CO-2 Intensity Analysis";
            chart.Title.TextSize = 15;
            chart.SetBackgroundColor(Color.White);
            chart.ColorModel.ColorPalette = ChartColorPalette.Natural;

            chart.Legend.Visibility             = Visibility.Visible;
            chart.Legend.DockPosition           = ChartDock.Bottom;
            chart.Legend.IconHeight             = 14;
            chart.Legend.IconWidth              = 14;
            chart.Legend.ToggleSeriesVisibility = true;

            CategoryAxis categoryaxis = new CategoryAxis();

            categoryaxis.LabelPlacement        = LabelPlacement.BetweenTicks;
            categoryaxis.EdgeLabelsDrawingMode = EdgeLabelsDrawingMode.Shift;
            categoryaxis.Title.Text            = "Year";
            chart.PrimaryAxis = categoryaxis;

            NumericalAxis numericalaxis = new NumericalAxis();

            numericalaxis.Minimum    = 390;
            numericalaxis.Maximum    = 600;
            numericalaxis.Interval   = 30;
            numericalaxis.Title.Text = "Intensity (g/KWh)";
            chart.SecondaryAxis      = numericalaxis;

            StepLineSeries stepLineSeries1 = new StepLineSeries();

            stepLineSeries1.ItemsSource           = MainPage.GetStepLineData1();
            stepLineSeries1.XBindingPath          = "XValue";
            stepLineSeries1.YBindingPath          = "YValue";
            stepLineSeries1.Label                 = "US";
            stepLineSeries1.DataMarker.ShowMarker = true;
            stepLineSeries1.LegendIcon            = ChartLegendIcon.Circle;
            stepLineSeries1.StrokeWidth           = 3;
            stepLineSeries1.TooltipEnabled        = true;

            StepLineSeries stepLineSeries2 = new StepLineSeries();

            stepLineSeries2.ItemsSource           = MainPage.GetStepLineData2();
            stepLineSeries2.XBindingPath          = "XValue";
            stepLineSeries2.YBindingPath          = "YValue";
            stepLineSeries2.Label                 = "Korea";
            stepLineSeries2.DataMarker.ShowMarker = true;
            stepLineSeries2.LegendIcon            = ChartLegendIcon.Circle;
            stepLineSeries2.StrokeWidth           = 3;
            stepLineSeries2.TooltipEnabled        = true;

            StepLineSeries stepLineSeries3 = new StepLineSeries();

            stepLineSeries3.ItemsSource           = MainPage.GetStepLineData3();
            stepLineSeries3.XBindingPath          = "XValue";
            stepLineSeries3.YBindingPath          = "YValue";
            stepLineSeries3.Label                 = "Japan";
            stepLineSeries3.DataMarker.ShowMarker = true;
            stepLineSeries3.LegendIcon            = ChartLegendIcon.Circle;
            stepLineSeries3.StrokeWidth           = 3;
            stepLineSeries3.TooltipEnabled        = true;

            stepLineSeries1.EnableAnimation = true;
            stepLineSeries2.EnableAnimation = true;
            stepLineSeries3.EnableAnimation = true;

            chart.Series.Add(stepLineSeries1);
            chart.Series.Add(stepLineSeries2);
            chart.Series.Add(stepLineSeries3);
            return(chart);
        }
Esempio n. 25
0
        private void Form1_Load(object sender, EventArgs e)
        {
            var now  = DateTime.Now;
            var data = new List <Rawdata>()
            {
                new Rawdata()
                {
                    DateTime = now.AddSeconds(1), Value1 = 0, Value2 = 0
                },
                new Rawdata()
                {
                    DateTime = now.AddSeconds(2), Value1 = 1, Value2 = 1
                },
                new Rawdata()
                {
                    DateTime = now.AddSeconds(3), Value1 = 0, Value2 = 1
                },
                new Rawdata()
                {
                    DateTime = now.AddSeconds(4), Value1 = 1, Value2 = 1
                },
                new Rawdata()
                {
                    DateTime = now.AddSeconds(5), Value1 = 1, Value2 = 0
                },
                new Rawdata()
                {
                    DateTime = now.AddSeconds(6), Value1 = 0, Value2 = 0
                },
            };
            StepLineSeries col1 = new StepLineSeries()
            {
                Values        = new ChartValues <int>(),
                PointGeometry = null,
            };

            StepLineSeries col2 = new StepLineSeries()
            {
                Values = new ChartValues <int>(),
            };

            Axis ax = new Axis()
            {
                Separator = new Separator()
                {
                    Step = 1, IsEnabled = false
                }
            };

            ax.Labels = new List <string>();

            foreach (var item in data)
            {
                col1.Values.Add(item.Value1);
                col2.Values.Add(item.Value2 + 2);
                ax.Labels.Add(item.DateTime.Second.ToString());
            }

            cartesianChart1.Series.Add(col1);
            cartesianChart1.Series.Add(col2);
            cartesianChart1.AxisX.Add(ax);
            cartesianChart1.AxisY.Add(new Axis()
            {
                Labels = new[] { "aaa", "", "bbb" }
            });
        }
Esempio n. 26
0
        public void AddLevel3Control(Point p)
        {
            switch (ControlTag)
            {
            case 31:
            {
                PieChart pieChart = new PieChart();
                pieChart.Width  = 400;
                pieChart.Height = 300;

                pieChart.LegendLocation = LegendLocation.Bottom;

                PieSeries pieSeries = new PieSeries();
                pieSeries.Values = new ChartValues <int> {
                    5
                };
                pieSeries.Title      = "A";
                pieSeries.DataLabels = true;

                PieSeries pieSeries2 = new PieSeries();
                pieSeries2.Values = new ChartValues <int> {
                    3
                };
                pieSeries2.Title      = "B";
                pieSeries2.DataLabels = true;

                PieSeries pieSeries3 = new PieSeries();
                pieSeries3.Values = new ChartValues <int> {
                    6
                };
                pieSeries3.Title      = "C";
                pieSeries3.DataLabels = true;

                pieChart.Series.Add(pieSeries);
                pieChart.Series.Add(pieSeries2);
                pieChart.Series.Add(pieSeries3);
                pieChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(pieChart, 0);
                Canvas.SetLeft(pieChart, p.X - pieChart.DesiredSize.Width / 2);
                Canvas.SetTop(pieChart, p.Y - pieChart.DesiredSize.Height / 2);

                AddEvents(pieChart);
                DesignCanvas.Children.Add(pieChart);
            }

            break;

            case 32:
            {
                CartesianChart cartesianChart = new CartesianChart();
                cartesianChart.Width  = 400;
                cartesianChart.Height = 300;

                cartesianChart.LegendLocation = LegendLocation.Bottom;

                ColumnSeries columnSeries = new ColumnSeries();
                columnSeries.Values = new ChartValues <int> {
                    5
                };
                columnSeries.Title      = "A";
                columnSeries.DataLabels = true;

                ColumnSeries columnSeries2 = new ColumnSeries();
                columnSeries2.Values = new ChartValues <int> {
                    3
                };
                columnSeries2.Title      = "B";
                columnSeries2.DataLabels = true;

                ColumnSeries columnSeries3 = new ColumnSeries();
                columnSeries3.Values = new ChartValues <int> {
                    6
                };
                columnSeries3.Title      = "C";
                columnSeries3.DataLabels = true;

                cartesianChart.Series.Add(columnSeries);
                cartesianChart.Series.Add(columnSeries2);
                cartesianChart.Series.Add(columnSeries3);

                cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(cartesianChart, 0);
                Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2);
                Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2);

                AddEvents(cartesianChart);
                DesignCanvas.Children.Add(cartesianChart);
            }
            break;

            case 33:
            {
                CartesianChart cartesianChart = new CartesianChart();
                cartesianChart.Width  = 400;
                cartesianChart.Height = 300;

                cartesianChart.LegendLocation = LegendLocation.Bottom;

                StackedColumnSeries columnSeries = new StackedColumnSeries();
                columnSeries.Values = new ChartValues <int> {
                    5, 6, 5
                };
                columnSeries.Title      = "A";
                columnSeries.DataLabels = true;

                StackedColumnSeries columnSeries2 = new StackedColumnSeries();
                columnSeries2.Values = new ChartValues <int> {
                    3, 4, 2
                };
                columnSeries2.Title      = "B";
                columnSeries2.DataLabels = true;

                StackedColumnSeries columnSeries3 = new StackedColumnSeries();
                columnSeries3.Values = new ChartValues <int> {
                    6, 3, 3
                };
                columnSeries3.Title      = "C";
                columnSeries3.DataLabels = true;

                cartesianChart.Series.Add(columnSeries);
                cartesianChart.Series.Add(columnSeries2);
                cartesianChart.Series.Add(columnSeries3);

                cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(cartesianChart, 0);
                Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2);
                Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2);

                AddEvents(cartesianChart);
                DesignCanvas.Children.Add(cartesianChart);
            }
            break;

            case 34:
            {
                CartesianChart cartesianChart = new CartesianChart();
                cartesianChart.Width  = 400;
                cartesianChart.Height = 300;

                cartesianChart.LegendLocation = LegendLocation.Bottom;

                RowSeries CarSeries = new RowSeries();
                CarSeries.Values = new ChartValues <int> {
                    5
                };
                CarSeries.Title      = "A";
                CarSeries.DataLabels = true;

                RowSeries CarSeries2 = new RowSeries();
                CarSeries2.Values = new ChartValues <int> {
                    3
                };
                CarSeries2.Title      = "B";
                CarSeries2.DataLabels = true;

                RowSeries CarSeries3 = new RowSeries();
                CarSeries3.Values = new ChartValues <int> {
                    6
                };
                CarSeries3.Title      = "C";
                CarSeries3.DataLabels = true;

                cartesianChart.Series.Add(CarSeries);
                cartesianChart.Series.Add(CarSeries2);
                cartesianChart.Series.Add(CarSeries3);

                cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(cartesianChart, 0);
                Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2);
                Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2);

                AddEvents(cartesianChart);
                DesignCanvas.Children.Add(cartesianChart);
            }
            break;

            case 35:
            {
                CartesianChart cartesianChart = new CartesianChart();
                cartesianChart.Width  = 400;
                cartesianChart.Height = 300;

                cartesianChart.LegendLocation = LegendLocation.Bottom;

                StackedRowSeries columnSeries = new StackedRowSeries();
                columnSeries.Values = new ChartValues <int> {
                    5, 6, 5
                };
                columnSeries.Title      = "A";
                columnSeries.DataLabels = true;

                StackedRowSeries columnSeries2 = new StackedRowSeries();
                columnSeries2.Values = new ChartValues <int> {
                    3, 4, 2
                };
                columnSeries2.Title      = "B";
                columnSeries2.DataLabels = true;

                StackedRowSeries columnSeries3 = new StackedRowSeries();
                columnSeries3.Values = new ChartValues <int> {
                    6, 3, 3
                };
                columnSeries3.Title      = "C";
                columnSeries3.DataLabels = true;

                cartesianChart.Series.Add(columnSeries);
                cartesianChart.Series.Add(columnSeries2);
                cartesianChart.Series.Add(columnSeries3);

                cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(cartesianChart, 0);
                Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2);
                Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2);

                AddEvents(cartesianChart);
                DesignCanvas.Children.Add(cartesianChart);
            }
            break;

            case 36:
            {
                CartesianChart lineChart = new CartesianChart();
                lineChart.Width  = 400;
                lineChart.Height = 300;

                lineChart.LegendLocation = LegendLocation.Bottom;

                LineSeries lineSeries = new LineSeries();
                lineSeries.Values = new ChartValues <int> {
                    5, 6, 8
                };
                lineSeries.Title      = "A";
                lineSeries.DataLabels = true;

                LineSeries lineSeries2 = new LineSeries();
                lineSeries2.Values = new ChartValues <int> {
                    3, 2, 5
                };
                lineSeries2.Title      = "B";
                lineSeries2.DataLabels = true;

                LineSeries lineSeries3 = new LineSeries();
                lineSeries3.Values = new ChartValues <int> {
                    6, 5, 3
                };
                lineSeries3.Title      = "C";
                lineSeries3.DataLabels = true;

                lineChart.Series.Add(lineSeries);
                lineChart.Series.Add(lineSeries2);
                lineChart.Series.Add(lineSeries3);

                lineChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(lineChart, 0);
                Canvas.SetLeft(lineChart, p.X - lineChart.DesiredSize.Width / 2);
                Canvas.SetTop(lineChart, p.Y - lineChart.DesiredSize.Height / 2);

                AddEvents(lineChart);
                DesignCanvas.Children.Add(lineChart);
            }
            break;

            case 37:
            {
                CartesianChart cartesianChart = new CartesianChart();
                cartesianChart.Width  = 400;
                cartesianChart.Height = 300;

                cartesianChart.LegendLocation = LegendLocation.Bottom;

                StackedAreaSeries columnSeries = new StackedAreaSeries();
                columnSeries.Values = new ChartValues <int> {
                    2, 4, 6
                };
                columnSeries.Title      = "A";
                columnSeries.DataLabels = true;

                StackedAreaSeries columnSeries2 = new StackedAreaSeries();
                columnSeries2.Values = new ChartValues <int> {
                    3, 5, 7
                };
                columnSeries2.Title      = "B";
                columnSeries2.DataLabels = true;

                StackedAreaSeries columnSeries3 = new StackedAreaSeries();
                columnSeries3.Values = new ChartValues <int> {
                    4, 6, 8
                };
                columnSeries3.Title      = "C";
                columnSeries3.DataLabels = true;

                cartesianChart.Series.Add(columnSeries);
                cartesianChart.Series.Add(columnSeries2);
                cartesianChart.Series.Add(columnSeries3);

                cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(cartesianChart, 0);
                Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2);
                Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2);

                AddEvents(cartesianChart);
                DesignCanvas.Children.Add(cartesianChart);
            }
            break;

            case 38:
            {
                CartesianChart cartesianChart = new CartesianChart();
                cartesianChart.Width  = 400;
                cartesianChart.Height = 300;

                cartesianChart.LegendLocation = LegendLocation.Bottom;

                StepLineSeries columnSeries = new StepLineSeries();
                columnSeries.Values = new ChartValues <int> {
                    1, 2, 1
                };
                columnSeries.Title      = "A";
                columnSeries.DataLabels = true;

                StepLineSeries columnSeries2 = new StepLineSeries();
                columnSeries2.Values = new ChartValues <int> {
                    3, 5, 6
                };
                columnSeries2.Title      = "B";
                columnSeries2.DataLabels = true;

                StepLineSeries columnSeries3 = new StepLineSeries();
                columnSeries3.Values = new ChartValues <int> {
                    6, 7, 7
                };
                columnSeries3.Title      = "C";
                columnSeries3.DataLabels = true;

                cartesianChart.Series.Add(columnSeries);
                cartesianChart.Series.Add(columnSeries2);
                cartesianChart.Series.Add(columnSeries3);

                cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(cartesianChart, 0);
                Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2);
                Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2);

                AddEvents(cartesianChart);
                DesignCanvas.Children.Add(cartesianChart);
            }
            break;
            }
        }