public override View GetSampleContent(Context context)
        {
            LoadData();

            chart = new SfChart(context);;
            chart.SetBackgroundColor(Color.White);
            chart.PrimaryAxis = new NumericalAxis();

            var axis = new NumericalAxis {
                Minimum = -1.5, Maximum = 1.5
            };

            chart.SecondaryAxis            = axis;
            axis.LabelStyle.LabelsPosition = AxisElementPosition.Outside;
            axis.TickPosition = AxisElementPosition.Outside;

            var lineSeries = new FastLineSeries {
                DataSource = data
            };

            chart.Series.Add(lineSeries);

            UpdateData();

            AddSeries();

            return(chart);
        }
 private async void AddSeries()
 {
     await Task.Delay(400);
     var fastLine = new FastLineSeries();
     chart.Series.Add(fastLine);
     fastLine.DataSource = data2;
 }
        private async void AddSeries()
        {
            await Task.Delay(400);

            var fastLine = new FastLineSeries();

            chart.Series.Add(fastLine);
            fastLine.DataSource = data2;
        }
Beispiel #4
0
        void bindDataWpf()
        {
            Chart.Series.Clear();
            var line = new FastLineSeries();

            line.ItemsSource  = chartSource;
            line.XBindingPath = "Argument";
            line.YBindingPath = "Value";
            Chart.Series.Add(line);
        }
        public void Chart()
        {
            TestChart.Series.Clear();
            FastLineSeries fastline = new FastLineSeries();

            fastline.ItemsSource     = (new DataGenerator()).DynamicData;
            fastline.XBindingPath    = "Enc";
            fastline.YBindingPath    = "Force";
            fastline.StrokeThickness = 2;
            TestChart.Series.Add(fastline);
        }
        private void AddToChart(GraphingViewModel.SensorTuple tuple)
        {
            ChartSeries chartSeries;

            //Water level sensor
            if (tuple.sensor.SensorTypeID == 19)
            {
                var series = new AreaSeries();
                series.Interior = new SolidColorBrush {
                    Color = Colors.LightBlue, Opacity = 0.5
                };
                series.YBindingPath = "value";
                //By using the darkest of all values, we let other charts draw over the level area chart
                series.CompositeMode = ElementCompositeMode.MinBlend;
                chartSeries          = series;
            }
            else
            {
                //We could use bitmapLine series on really slow machines.
                //It would be perfect for phones because they have very high DPI and the aliasing is less of an issue
                var series = new FastLineSeries();
                series.YBindingPath = "value";
                chartSeries         = series;
            }
            chartSeries.ItemsSource       = tuple.historicalDatapoints;
            chartSeries.EnableAnimation   = true;
            chartSeries.AnimationDuration = TimeSpan.FromMilliseconds(200);
            chartSeries.XBindingPath      = "timestamp";

            tuple.ChartSeries           = chartSeries;
            tuple.Axis                  = DateAxis;
            chartSeries.IsSeriesVisible = false;

            //This is a string shortener! nothing else
            var placementNameLength = tuple.sensor.SensorType.Place.Name.Length > 6
                ? 6
                : tuple.sensor.SensorType.Place.Name.Length;
            var locationString = tuple.sensor.SensorType.Place.Name.Substring(0, placementNameLength);
            var spaceLocation  = tuple.sensor.SensorType.Place.Name.IndexOf(' ');

            if (spaceLocation > 0 && tuple.sensor.SensorType.Place.Name.Length > spaceLocation + 1)
            {
                locationString += tuple.sensor.SensorType.Place.Name.Substring(spaceLocation, 2) + ".";
            }


            chartSeries.Label = tuple.sensor.SensorType.Param.Name + ": " + locationString;

            ChartView.Series.Add(chartSeries);
        }
        public override View GetSampleContent(Context context)
        {
            datas1 = new ObservableCollection <DataPoint>();

            sfChart = new SfChart(context);
            sfChart.ColorModel.ColorPalette = ChartColorPalette.Natural;

            sfChart.Title.Text     = "Seismograph analysis of a country";
            sfChart.Title.TextSize = 15;

            sfChart.Legend.Visibility             = Visibility.Visible;
            sfChart.Legend.ToggleSeriesVisibility = true;

            NumericalAxis primaryAxis = new NumericalAxis();

            primaryAxis.Title.Text         = "Time (s)";
            primaryAxis.ShowMajorGridLines = false;
            sfChart.PrimaryAxis            = primaryAxis;

            NumericalAxis numericalAxis = new NumericalAxis()
            {
                Minimum = -15,
                Maximum = 15,
            };

            numericalAxis.Title.Text         = "Velocity (m/s)";
            numericalAxis.ShowMajorGridLines = false;
            sfChart.SecondaryAxis            = numericalAxis;

            FastLineSeries fastLineSeries = new FastLineSeries();

            fastLineSeries.ItemsSource  = datas1;
            fastLineSeries.XBindingPath = "XValue";
            fastLineSeries.YBindingPath = "YValue";
            fastLineSeries.Label        = "Indonesia";
            fastLineSeries.Transposed   = true;
            sfChart.Series.Add(fastLineSeries);

            Random random = new Random();

            for (int i = 1; i < 50; i++)
            {
                datas1.Add(new DataPoint(i, random.Next(-3, 3)));
            }

            UpdateData();
            return(sfChart);
        }
        public void BindingChart()
        {
            if (this.Chart != null)
            {
                for (int i = 0; i < 3; i++)
                {
                    Color  color = Color.FromHex("#F3584F");
                    string value = "Voltage";
                    switch (i)
                    {
                    case 1:
                        color = Color.FromHex("#00bdae");
                        value = "Resitance";
                        break;

                    case 2:
                        color = Color.FromHex("#98C862");
                        value = "Temperature";
                        break;
                    }

                    FastLineSeries columnSeries = new FastLineSeries()
                    {
                        ItemsSource  = ViewModel.Ups,
                        XBindingPath = "StringName",
                        YBindingPath = value,
                        Color        = color,
                        StrokeWidth  = 1,
                        Label        = value,
                        LegendIcon   = ChartLegendIcon.SeriesType,
                        DataMarker   = new ChartDataMarker()
                        {
                            ShowMarker        = true,
                            ShowLabel         = false,
                            MarkerBorderColor = color,
                            MarkerBorderWidth = 0,
                            MarkerColor       = color,
                            MarkerWidth       = 3,
                            MarkerHeight      = 3
                        }
                    };

                    this.Chart.Series.Add(columnSeries);
                }
            }
        }
Beispiel #9
0
        void loadCompanyGraphs(Eco.Company comp)
        {
            stockPriceChart.Series.Clear();
            companyValueChart.Series.Clear();

            //INSERT COMPANY VALUES
            FastLineSeries series = new FastLineSeries()
            {
                ItemsSource  = comp.ValueviewModel.values,
                XBindingPath = "Year",
                YBindingPath = "Value"
            };

            series.ListenPropertyChange = true;

            companyValueChart.Series.Add(series);

            //INSERT STOCK PRICES
            FastCandleBitmapSeries candleSeries = new FastCandleBitmapSeries()
            {
                ItemsSource  = comp.stockViewModel.prices1m,
                XBindingPath = "Year",
                High         = "High",
                Low          = "Low",
                Open         = "Open",
                Close        = "Close"
            };

            candleSeries.ListenPropertyChange = true;
            candleSeries.BullFillColor        = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 70, 220, 75));
            candleSeries.BearFillColor        = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 235, 30, 30));
            //stockPriceChart.Background = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 30, 30, 35));

            (stockPriceChart.SecondaryAxis as NumericalAxis).ZoomFactor = 1.4;
            candleSeries.ComparisonMode = FinancialPrice.None;

            stockPriceChart.Series.Add(candleSeries);
        }
Beispiel #10
0
        /// <summary>
        /// EPMessageDemoView on data context changed.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="DependencyPropertyChangedEventArgs"/> instance containing the event data.</param>
        private void EPMessageDemoViewOnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            var items = DataContext as EPMessageDemoViewModel;

            if (items == null)
            {
                return;
            }

            MyChart.DataContext = items;

            // Now remove items that are emtpy, but preserve the colour order
            MyChart.Series.Clear();
            var palette = MyChart.Palette;

            MyChart.Palette = null;
            var newPalette = new Collection <ResourceDictionary>();

            foreach (var pair in items.Zip(palette, (item, p) => new { item, p }))
            {
                var points = pair.item.Value as Point[];
                if (points == null || points.Length == 0)
                {
                    continue;
                }

                var fs = new FastLineSeries <double, double>
                {
                    LegendItemStyle = (Style)this.MyChart.Resources["CustomLegendItem"],
                    ItemsSource     = points.Select(ia => new ChartPoint <double, double>(ia.X, ia.Y)),
                    Title           = pair.item.Key
                };
                this.MyChart.Series.Add(fs);
                newPalette.Add(pair.p);
            }

            MyChart.Palette = newPalette;
        }
        public override View GetSampleContent(Context context)
        {
            LoadData();

            chart = new SfChart(context);;
            chart.SetBackgroundColor(Color.White);
            chart.PrimaryAxis = new NumericalAxis();

            var axis = new NumericalAxis {Minimum = -1.5, Maximum = 1.5};
            chart.SecondaryAxis = axis;
            axis.LabelStyle.LabelsPosition = AxisElementPosition.Outside;
            axis.TickPosition = AxisElementPosition.Outside;

            var lineSeries = new FastLineSeries {DataSource = data};

            chart.Series.Add(lineSeries);

            UpdateData();

            AddSeries();

            return chart;
        }
Beispiel #12
0
        public override View GetSampleContent(Context context)
        {
            LoadData();

            chart = new SfChart(context);
            chart.SetBackgroundColor(Color.White);
            chart.PrimaryAxis = new NumericalAxis()
            {
                ShowMajorGridLines = false
            };
            chart.ColorModel.ColorPalette = ChartColorPalette.Natural;

            var axis = new NumericalAxis {
                Minimum = -1.5, Maximum = 1.5, ShowMajorGridLines = false
            };

            chart.SecondaryAxis            = axis;
            axis.LabelStyle.LabelsPosition = AxisElementPosition.Outside;
            axis.TickPosition = AxisElementPosition.Outside;

            var lineSeries = new FastLineSeries {
                ItemsSource = data, XBindingPath = "XValue", YBindingPath = "YValue"
            };

            var fastLine = new FastLineSeries();

            fastLine.ItemsSource  = data2;
            fastLine.XBindingPath = "XValue";
            fastLine.YBindingPath = "YValue";
            chart.Series.Add(fastLine);

            chart.Series.Add(lineSeries);

            UpdateData();

            return(chart);
        }
        public override View GetSampleContent(Context context)
        {
            var chart = new SfChart(context);;

            chart.SetBackgroundColor(Color.White);
            chart.Legend.ToggleSeriesVisibility = true;
            chart.Legend.Visibility             = Visibility.Visible;

            var primary = new CategoryAxis();

            primary.Title.Text      = "Years";
            primary.Title.TextColor = Color.Black;
            primary.LabelPlacement  = LabelPlacement.BetweenTicks;
            chart.PrimaryAxis       = primary;

            var secondaryAxis = new NumericalAxis()
            {
                Minimum            = 6200,
                Maximum            = 8800,
                Interval           = 200,
                ShowMajorGridLines = false
            };

            secondaryAxis.Title.Text             = "Revenue";
            secondaryAxis.LabelStyle.LabelFormat = "$####";
            chart.SecondaryAxis = secondaryAxis;

            var datas = new ObservableArrayList();

            datas.Add(new ChartDataPoint("2010", 8000));
            datas.Add(new ChartDataPoint("2011", 8100));
            datas.Add(new ChartDataPoint("2012", 8250));
            datas.Add(new ChartDataPoint("2013", 8600));
            datas.Add(new ChartDataPoint("2014", 8700));

            var datas1 = new ObservableArrayList();

            datas1.Add(new ChartDataPoint("2010", 6));
            datas1.Add(new ChartDataPoint("2011", 15));
            datas1.Add(new ChartDataPoint("2012", 35));
            datas1.Add(new ChartDataPoint("2013", 65));
            datas1.Add(new ChartDataPoint("2014", 75));

            chart.Series.Add(new ColumnSeries()
            {
                Label      = "Revenue",
                DataSource = datas
            });

            var lineSeries = new FastLineSeries()
            {
                Label       = "Customers",
                DataSource  = datas1,
                StrokeWidth = 7,
                YAxis       = new NumericalAxis()
                {
                    OpposedPosition    = true,
                    Minimum            = 0,
                    Maximum            = 80,
                    Interval           = 5,
                    ShowMajorGridLines = false,
                }
            };

            chart.Series.Add(lineSeries);
            lineSeries.YAxis.Title.Text = "Number of Customers";
            return(chart);
        }
       public override View GetSampleContent(Context context)
        {
            var chart = new SfChart(context);;
            chart.SetBackgroundColor(Color.White);
            chart.Legend.ToggleSeriesVisibility = true;
            chart.Legend.Visibility = Visibility.Visible;

            var primary = new CategoryAxis();
            primary.Title.Text = "Years";
            primary.Title.TextColor = Color.Black;
            primary.LabelPlacement = LabelPlacement.BetweenTicks;
            chart.PrimaryAxis = primary;

            var secondaryAxis = new NumericalAxis()
            {
                Minimum = 6200,
                Maximum = 8800,
                Interval = 200,
                ShowMajorGridLines = false
            };

            secondaryAxis.Title.Text = "Revenue";
            secondaryAxis.LabelStyle.LabelFormat = "$####";
            chart.SecondaryAxis = secondaryAxis;

            var datas = new ObservableArrayList();
            datas.Add(new ChartDataPoint("2010", 8000));
            datas.Add(new ChartDataPoint("2011", 8100));
            datas.Add(new ChartDataPoint("2012", 8250));
            datas.Add(new ChartDataPoint("2013", 8600));
            datas.Add(new ChartDataPoint("2014", 8700));

            var datas1 = new ObservableArrayList();
            datas1.Add(new ChartDataPoint("2010", 6));
            datas1.Add(new ChartDataPoint("2011", 15));
            datas1.Add(new ChartDataPoint("2012", 35));
            datas1.Add(new ChartDataPoint("2013", 65));
            datas1.Add(new ChartDataPoint("2014", 75));

            chart.Series.Add(new ColumnSeries()
            {
                Label = "Revenue",
                DataSource = datas
            });

            var lineSeries = new FastLineSeries()
            {
                Label = "Customers",
                DataSource = datas1,
                StrokeWidth = 7,
                YAxis = new NumericalAxis()
                {
                    OpposedPosition = true,
                    Minimum = 0,
                    Maximum = 80,
                    Interval = 5,
                    ShowMajorGridLines = false,
                }
            };
            chart.Series.Add(lineSeries);
            lineSeries.YAxis.Title.Text = "Number of Customers";
            return chart;
        }
Beispiel #15
0
        public override View GetSampleContent(Context context)
        {
            var chart = new SfChart(context);

            chart.Title.Text = "Food Production - 2017";
            chart.SetBackgroundColor(Color.White);
            chart.Scroll += (sender, e) =>
            {
                month = int.MaxValue;
            };

            DateTimeAxis dateTimeAxis = new DateTimeAxis();

            dateTimeAxis.Title.Text    = "Production Across Years";
            dateTimeAxis.ZoomFactor    = 0.2f;
            dateTimeAxis.ZoomPosition  = 0.6f;
            dateTimeAxis.LabelCreated += (sender, e) =>
            {
                var date = DateTime.Parse(e.AxisLabel.LabelContent.ToString());
                if (date.Month != month)
                {
                    ChartAxisLabelStyle labelStyle = new ChartAxisLabelStyle();
                    labelStyle.LabelFormat = "MMM-dd";
                    labelStyle.TextSize    = 9;
                    labelStyle.Typeface    = Typeface.DefaultBold;
                    e.AxisLabel.LabelStyle = labelStyle;
                    month = date.Month;
                }
                else
                {
                    ChartAxisLabelStyle labelStyle = new ChartAxisLabelStyle();
                    labelStyle.LabelFormat = "dd";
                    e.AxisLabel.LabelStyle = labelStyle;
                }
            };
            dateTimeAxis.EdgeLabelsDrawingMode = EdgeLabelsDrawingMode.Shift;
            chart.PrimaryAxis = dateTimeAxis;

            var numericalAxis = new NumericalAxis();

            numericalAxis.Title.Text = "Growth (In Metric Tons)";
            chart.SecondaryAxis      = numericalAxis;

            FastLineSeries lineSeries = new FastLineSeries();

            lineSeries.ColorModel.ColorPalette = ChartColorPalette.Natural;
            lineSeries.ItemsSource             = Data.GetDateTimeValue();
            lineSeries.XBindingPath            = "Date";
            lineSeries.YBindingPath            = "YValue";
            lineSeries.TooltipEnabled          = true;
            chart.Series.Add(lineSeries);

            ChartZoomPanBehavior zoomPan = new ChartZoomPanBehavior();

            zoomPan.SelectionZoomingEnabled = false;
            zoomPan.ZoomMode = ZoomMode.X;

            chart.Behaviors.Add(zoomPan);

            return(chart);
        }
        public MainWindow()
        {
            InitializeComponent();

            int numPins = 20;
            // programmatically create the chart series so we don't copy-and-paste
            for (int i = 0; i < numPins; i++)
            {
                channelGrid.RowDefinitions.Add(new System.Windows.Controls.RowDefinition() { Height=new GridLength(1, GridUnitType.Star)});


                var tb = new TextBlock() { Text = i.ToString(), HorizontalAlignment=HorizontalAlignment.Left};
                TextOptions.SetTextFormattingMode(tb, TextFormattingMode.Ideal);
                var vb = new Viewbox() { Width = 70, StretchDirection = StretchDirection.Both, Stretch = Stretch.Uniform };
                vb.Child = tb;

                var toggle = new HorizontalToggleSwitch() { };

                var toggleBinding = new Binding();
                toggleBinding.Source = DataContext;
                toggleBinding.Path = new PropertyPath("ChannelEnabled["+i+"]");
                toggleBinding.Mode = BindingMode.TwoWay;

                BindingOperations.SetBinding(toggle, HorizontalToggleSwitch.IsCheckedProperty, toggleBinding);

                var sp = new StackPanel() { Orientation = Orientation.Horizontal };
                sp.Children.Add(vb);
                sp.Children.Add(toggle);

                channelGrid.Children.Add(sp);

                Grid.SetRow(sp, i);

                var row = new ChartRowDefinition();
                row.BorderThickness = 5;
                row.BorderStroke = new SolidColorBrush(Color.FromArgb(0xff, 0x6C, 0x6C, 0x6C));
                chart.RowDefinitions.Add(row);

                var series = new FastLineSeries();

                var binding = new Binding();
                binding.Source = DataContext;
                binding.Path = new PropertyPath("Data");
                binding.Mode = BindingMode.OneWay;
                binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;

                BindingOperations.SetBinding(series, FastScatterBitmapSeries.ItemsSourceProperty, binding);

                
                series.XBindingPath = "TimestampOffset";
                series.YBindingPath = "Values[" + i + "]";
                var axis = new NumericalAxis();
                axis.TickLineSize = 0;
                axis.LabelFormat = " ";
                axis.ShowGridLines = false;
                axis.Minimum = 0;
                axis.Maximum = 3.3;
                axis.PlotOffset = 10;
                series.YAxis = axis;
                chart.Series.Add(series);
                SfChart.SetRow(axis, numPins - 1 - i); // rows start from the bottom
            }

            channelGrid.RowDefinitions.Add(new System.Windows.Controls.RowDefinition() { Height = new GridLength(35, GridUnitType.Pixel) });

        }
        public override View GetSampleContent(Context context)
        {
            var chart = new SfChart(context);

            chart.SetBackgroundColor(Color.White);
            chart.Legend.ToggleSeriesVisibility = true;
            chart.Title.Text              = "Weather Condition JPN vs DEU";
            chart.Legend.Visibility       = Visibility.Visible;
            chart.Legend.IconHeight       = 14;
            chart.Legend.IconWidth        = 14;
            chart.Legend.DockPosition     = ChartDock.Bottom;
            chart.ColorModel.ColorPalette = ChartColorPalette.Natural;

            var primary = new CategoryAxis();

            primary.Title.Text         = "Year";
            primary.Title.TextColor    = Color.Black;
            primary.LabelPlacement     = LabelPlacement.BetweenTicks;
            primary.ShowMajorGridLines = false;
            chart.PrimaryAxis          = primary;

            var secondaryAxis = new NumericalAxis()
            {
                Interval           = 2,
                ShowMajorGridLines = false
            };

            secondaryAxis.LabelStyle.LabelFormat = "##.##�F";
            secondaryAxis.Maximum  = 100;
            secondaryAxis.Minimum  = 0;
            secondaryAxis.Interval = 20;
            chart.SecondaryAxis    = secondaryAxis;

            var datas = new List <DataPoint>();

            datas.Add(new DataPoint("Sun", 35));
            datas.Add(new DataPoint("Mon", 40));
            datas.Add(new DataPoint("Tue", 80));
            datas.Add(new DataPoint("Wed", 70));
            datas.Add(new DataPoint("Thu", 65));
            datas.Add(new DataPoint("Fri", 55));
            datas.Add(new DataPoint("Sat", 50));

            var datas1 = new List <DataPoint>();

            datas1.Add(new DataPoint("Sun", 30));
            datas1.Add(new DataPoint("Mon", 28));
            datas1.Add(new DataPoint("Tue", 29));
            datas1.Add(new DataPoint("Wed", 30));
            datas1.Add(new DataPoint("Thu", 33));
            datas1.Add(new DataPoint("Fri", 32));
            datas1.Add(new DataPoint("Sat", 34));

            chart.Series.Add(new ColumnSeries()
            {
                Label           = "Germany",
                ItemsSource     = datas,
                XBindingPath    = "XValue",
                YBindingPath    = "YValue",
                TooltipEnabled  = true,
                EnableAnimation = true,
            });

            var lineSeries = new FastLineSeries()
            {
                Label           = "Japan",
                ItemsSource     = datas1,
                XBindingPath    = "XValue",
                YBindingPath    = "YValue",
                EnableAnimation = true,
                YAxis           = new NumericalAxis()
                {
                    OpposedPosition    = true,
                    Minimum            = 24,
                    Maximum            = 36,
                    Interval           = 2,
                    ShowMajorGridLines = false,
                }
            };

            lineSeries.DataMarker.ShowLabel         = false;
            lineSeries.DataMarker.ShowMarker        = true;
            lineSeries.DataMarker.MarkerColor       = Color.White;
            lineSeries.DataMarker.MarkerWidth       = 10;
            lineSeries.DataMarker.MarkerHeight      = 10;
            lineSeries.DataMarker.MarkerStrokeColor = Color.ParseColor("#F8AB1D");
            lineSeries.DataMarker.MarkerStrokeWidth = 2;
            lineSeries.YAxis.LabelStyle.LabelFormat = "##.##�C";
            chart.Series.Add(lineSeries);
            lineSeries.TooltipEnabled = true;
            return(chart);
        }
Beispiel #18
0
        public MainWindow()
        {
            this.DataContext = vm;
            InitializeComponent();

            int numPins = 20;

            // programmatically create the chart series so we don't copy-and-paste
            for (int i = 0; i < numPins; i++)
            {
                channelGrid.RowDefinitions.Add(new RowDefinition()
                {
                    Height = new GridLength(1, GridUnitType.Star)
                });


                var tb = new TextBlock()
                {
                    Text = i.ToString(), HorizontalAlignment = HorizontalAlignment.Left
                };
                TextOptions.SetTextFormattingMode(tb, TextFormattingMode.Ideal);
                var vb = new Viewbox()
                {
                    Width = 70, StretchDirection = StretchDirection.Both, Stretch = Stretch.Uniform
                };
                vb.Child = tb;

                var toggle = new HorizontalToggleSwitch()
                {
                };

                var toggleBinding = new Binding();
                toggleBinding.Source = DataContext;
                toggleBinding.Path   = new PropertyPath("ChannelEnabled[" + i + "]");
                toggleBinding.Mode   = BindingMode.TwoWay;

                BindingOperations.SetBinding(toggle, ToggleSwitchBase.IsCheckedProperty, toggleBinding);

                var sp = new StackPanel()
                {
                    Orientation = Orientation.Horizontal
                };
                sp.Children.Add(vb);
                sp.Children.Add(toggle);

                channelGrid.Children.Add(sp);

                Grid.SetRow(sp, i);

                var row = new ChartRowDefinition();
                row.BorderThickness = 5;
                row.BorderStroke    = new SolidColorBrush(Color.FromArgb(0xff, 0x6C, 0x6C, 0x6C));
                chart.RowDefinitions.Add(row);

                var series = new FastLineSeries();

                var binding = new Binding();
                binding.Source = DataContext;
                binding.Path   = new PropertyPath("Data");
                binding.Mode   = BindingMode.OneWay;
                binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;

                BindingOperations.SetBinding(series, ChartSeriesBase.ItemsSourceProperty, binding);


                series.XBindingPath = "TimestampOffset";
                series.YBindingPath = "Values[" + i + "]";
                var axis = new NumericalAxis();
                axis.TickLineSize  = 0;
                axis.LabelFormat   = " ";
                axis.ShowGridLines = false;
                axis.Minimum       = 0;
                axis.Maximum       = 3.3;
                axis.PlotOffset    = 10;
                series.YAxis       = axis;
                chart.Series.Add(series);
                ChartBase.SetRow(axis, numPins - 1 - i); // rows start from the bottom
            }

            channelGrid.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(35, GridUnitType.Pixel)
            });
        }
        public PlotRecorderProfile_HA(JBC_API_Remote jbcConnect, RadChartView _radChartView, Label labelHotAirTemp, Label labelExtTCTemp, Label labelAirFlow, Label labelStatus, long stationID, Port port)
        {
            m_jbcConnect      = jbcConnect;
            m_radChartView    = _radChartView;
            m_labelHotAirTemp = labelHotAirTemp;
            m_labelExtTCTemp  = labelExtTCTemp;
            m_labelAirFlow    = labelAirFlow;
            m_labelStatus     = labelStatus;
            m_stationID       = stationID;
            m_port            = port;
            m_liveData        = new LiveDataModel(m_jbcConnect, m_radChartView, m_labelHotAirTemp, m_labelExtTCTemp, m_labelAirFlow, m_labelStatus, m_stationID);


            //
            //Initialize axis
            //

            //Horizontal axis - Time
            m_timeAxis.LabelFitMode        = AxisLabelFitMode.MultiLine;
            m_timeAxis.PlotMode            = AxisPlotMode.OnTicks;
            m_timeAxis.ShowLabels          = true;
            m_timeAxis.LabelFormatProvider = new LabelTimeFormat();
            m_timeAxis.LabelOffset         = 1; //no mostrar el primer label

            //Vertical axis - Temperature
            m_tempAxis.AxisType  = AxisType.Second;
            m_tempAxis.Title     = "Temp ºC";
            m_tempAxis.Maximum   = TEMP_MAX;
            m_tempAxis.Minimum   = TEMP_MIN;
            m_tempAxis.MajorStep = TEMP_STEP;

            //Vertical axis - Power
            m_powerAxis.HorizontalLocation = AxisHorizontalLocation.Right;
            m_powerAxis.AxisType           = AxisType.Second;
            m_powerAxis.Title     = "Power %";
            m_powerAxis.Maximum   = POWER_MAX;
            m_powerAxis.Minimum   = POWER_MIN;
            m_powerAxis.MajorStep = POWER_STEP;

            //
            //Initialize grid area
            //

            //Adjust margins
            m_radChartView.View.Margin = new Padding(0);

            CartesianArea area = m_radChartView.GetArea <CartesianArea>();
            CartesianGrid grid = area.GetGrid <CartesianGrid>();

            grid.DrawHorizontalStripes = true;
            grid.DrawHorizontalFills   = false;
            grid.DrawVerticalStripes   = true;
            grid.DrawVerticalFills     = false;
            grid.ForeColor             = Color.DarkGray;


            //Se añaden y se quitan dos series vacias a cada eje para que pinte del color correcto el eje de temperatura y de potencia
            FastLineSeries lineSeries = new FastLineSeries();

            lineSeries.BorderColor    = Color.Black;
            lineSeries.DataSource     = new BindingList <DataSerie>();
            lineSeries.HorizontalAxis = m_timeAxis;
            lineSeries.VerticalAxis   = m_tempAxis;
            m_radChartView.Series.Add(lineSeries);

            lineSeries                = new FastLineSeries();
            lineSeries.BorderColor    = Color.Black;
            lineSeries.DataSource     = new BindingList <DataSerie>();
            lineSeries.HorizontalAxis = m_timeAxis;
            lineSeries.VerticalAxis   = m_powerAxis;
            m_radChartView.Series.Add(lineSeries);

            m_radChartView.Series.Clear();


            //
            //Initialize series
            //

            //Profile hot air temp
            FastLineSeries serieProfileHotAirTemp = new FastLineSeries();

            serieProfileHotAirTemp.Name           = "Profile hot air temperature";
            serieProfileHotAirTemp.LegendTitle    = "Profile hot air temperature";
            serieProfileHotAirTemp.BorderColor    = Color.LightCoral;
            serieProfileHotAirTemp.PointSize      = new SizeF(0, 0);
            serieProfileHotAirTemp.CategoryMember = "Time";
            serieProfileHotAirTemp.ValueMember    = "Value";
            serieProfileHotAirTemp.DataSource     = m_liveData.DataProfileHotAirTemp;
            serieProfileHotAirTemp.BorderWidth    = 1;
            serieProfileHotAirTemp.HorizontalAxis = m_timeAxis;
            serieProfileHotAirTemp.VerticalAxis   = m_tempAxis;
            m_radChartView.Series.Add(serieProfileHotAirTemp);
            //Profile ext TC temp
            FastLineSeries serieProfileExtTCTemp = new FastLineSeries();

            serieProfileExtTCTemp.Name           = "Profile ext TC temperature";
            serieProfileExtTCTemp.LegendTitle    = "Profile ext TC temperature";
            serieProfileExtTCTemp.BorderColor    = Color.LightGreen;
            serieProfileExtTCTemp.PointSize      = new SizeF(0, 0);
            serieProfileExtTCTemp.CategoryMember = "Time";
            serieProfileExtTCTemp.ValueMember    = "Value";
            serieProfileExtTCTemp.DataSource     = m_liveData.DataProfileExtTCTemp;
            serieProfileExtTCTemp.BorderWidth    = 1;
            serieProfileExtTCTemp.HorizontalAxis = m_timeAxis;
            serieProfileExtTCTemp.VerticalAxis   = m_tempAxis;
            m_radChartView.Series.Add(serieProfileExtTCTemp);
            //Profile air flow
            FastLineSeries serieProfileAirFlow = new FastLineSeries();

            serieProfileAirFlow.Name           = "Profile air flow";
            serieProfileAirFlow.LegendTitle    = "Profile air flow";
            serieProfileAirFlow.BorderColor    = Color.DeepSkyBlue;
            serieProfileAirFlow.PointSize      = new SizeF(0, 0);
            serieProfileAirFlow.CategoryMember = "Time";
            serieProfileAirFlow.ValueMember    = "Value";
            serieProfileAirFlow.DataSource     = m_liveData.DataProfileAirFlow;
            serieProfileAirFlow.BorderWidth    = 1;
            serieProfileAirFlow.HorizontalAxis = m_timeAxis;
            serieProfileAirFlow.VerticalAxis   = m_powerAxis;
            m_radChartView.Series.Add(serieProfileAirFlow);
            //Hot air temp
            FastLineSeries serieHotAirTemp = new FastLineSeries();

            serieHotAirTemp.Name           = "Hot air temperature";
            serieHotAirTemp.LegendTitle    = "Hot air temperature";
            serieHotAirTemp.BorderColor    = Color.DarkRed;
            serieHotAirTemp.PointSize      = new SizeF(0, 0);
            serieHotAirTemp.CategoryMember = "Time";
            serieHotAirTemp.ValueMember    = "Value";
            serieHotAirTemp.DataSource     = m_liveData.DataHotAirTemp;
            serieHotAirTemp.BorderWidth    = 1;
            serieHotAirTemp.HorizontalAxis = m_timeAxis;
            serieHotAirTemp.VerticalAxis   = m_tempAxis;
            m_radChartView.Series.Add(serieHotAirTemp);
            //Ext TC temp
            FastLineSeries serieExtTCTemp = new FastLineSeries();

            serieExtTCTemp.Name           = "Ext TC temperature";
            serieExtTCTemp.LegendTitle    = "Ext TC temperature";
            serieExtTCTemp.BorderColor    = Color.DarkGreen;
            serieExtTCTemp.PointSize      = new SizeF(0, 0);
            serieExtTCTemp.CategoryMember = "Time";
            serieExtTCTemp.ValueMember    = "Value";
            serieExtTCTemp.DataSource     = m_liveData.DataExtTCTemp;
            serieExtTCTemp.BorderWidth    = 1;
            serieExtTCTemp.HorizontalAxis = m_timeAxis;
            serieExtTCTemp.VerticalAxis   = m_tempAxis;
            m_radChartView.Series.Add(serieExtTCTemp);
            //Air flow
            FastLineSeries serieAirFlow = new FastLineSeries();

            serieAirFlow.Name           = "Air flow";
            serieAirFlow.LegendTitle    = "Air flow";
            serieAirFlow.BorderColor    = Color.RoyalBlue;
            serieAirFlow.PointSize      = new SizeF(0, 0);
            serieAirFlow.CategoryMember = "Time";
            serieAirFlow.ValueMember    = "Value";
            serieAirFlow.DataSource     = m_liveData.DataAirFlow;
            serieAirFlow.BorderWidth    = 1;
            serieAirFlow.HorizontalAxis = m_timeAxis;
            serieAirFlow.VerticalAxis   = m_powerAxis;
            m_radChartView.Series.Add(serieAirFlow);
            //Vertical mark serie
            FastLineSeries serieVerticalMark = new FastLineSeries();

            serieVerticalMark.BorderColor    = Color.Black;
            serieVerticalMark.PointSize      = new SizeF(0, 0);
            serieVerticalMark.CategoryMember = "Time";
            serieVerticalMark.ValueMember    = "Value";
            serieVerticalMark.DataSource     = m_liveData.DataVerticalMark;
            serieVerticalMark.BorderWidth    = 1;
            serieVerticalMark.HorizontalAxis = m_timeAxis;
            serieVerticalMark.VerticalAxis   = m_tempAxis;
            m_radChartView.Series.Add(serieVerticalMark);
        }
Beispiel #20
0
        public override View GetSampleContent(Context context)
        {
            var chart = new SfChart(context);;

            chart.SetBackgroundColor(Color.White);
            chart.Legend.ToggleSeriesVisibility = true;
            chart.Title.Text              = "Multiple Axes";
            chart.Legend.Visibility       = Visibility.Visible;
            chart.Legend.IconHeight       = 14;
            chart.Legend.IconWidth        = 14;
            chart.Legend.DockPosition     = ChartDock.Bottom;
            chart.ColorModel.ColorPalette = ChartColorPalette.Natural;

            var primary = new CategoryAxis();

            primary.Title.Text      = "Year";
            primary.Title.TextColor = Color.Black;
            primary.LabelPlacement  = LabelPlacement.BetweenTicks;
            chart.PrimaryAxis       = primary;

            var secondaryAxis = new NumericalAxis()
            {
                Interval           = 2,
                ShowMajorGridLines = false
            };

            secondaryAxis.Title.Text             = "Revenue (in millions)";
            secondaryAxis.LabelStyle.LabelFormat = "$####";
            chart.SecondaryAxis = secondaryAxis;

            var datas = new List <DataPoint>();

            datas.Add(new DataPoint("2010", 20));
            datas.Add(new DataPoint("2011", 21));
            datas.Add(new DataPoint("2012", 22.5));
            datas.Add(new DataPoint("2013", 26));
            datas.Add(new DataPoint("2014", 27));

            var datas1 = new List <DataPoint>();

            datas1.Add(new DataPoint("2010", 6));
            datas1.Add(new DataPoint("2011", 15));
            datas1.Add(new DataPoint("2012", 35));
            datas1.Add(new DataPoint("2013", 65));
            datas1.Add(new DataPoint("2014", 75));

            chart.Series.Add(new ColumnSeries()
            {
                Label           = "Revenue",
                ItemsSource     = datas,
                XBindingPath    = "XValue",
                YBindingPath    = "YValue",
                TooltipEnabled  = true,
                EnableAnimation = true,
            });

            var lineSeries = new FastLineSeries()
            {
                Label           = "Customers",
                ItemsSource     = datas1,
                XBindingPath    = "XValue",
                YBindingPath    = "YValue",
                EnableAnimation = true,
                YAxis           = new NumericalAxis()
                {
                    OpposedPosition    = true,
                    Minimum            = 0,
                    Maximum            = 80,
                    Interval           = 5,
                    ShowMajorGridLines = false,
                }
            };

            chart.Series.Add(lineSeries);
            lineSeries.YAxis.Title.Text = "Number of Customers";
            lineSeries.TooltipEnabled   = true;
            return(chart);
        }
Beispiel #21
0
 void RenderChart(SfChart chart, IList <UpsItemViewModel> datas, ChartColorCollection colors, string value,
                  double max, double min, double interval)
 {
     if (chart != null)
     {
         chart.HeightRequest = 400;
         chart.Series.Clear();
         for (int i = 0; i < datas.Count; i++)
         {
             Color color = colors[i];
             //string value = "Voltage";
             FastLineSeries columnSeries = new FastLineSeries()
             {
                 ItemsSource  = datas[i].UpsHistoryTrendings,
                 XBindingPath = "DateValue",
                 YBindingPath = value,
                 Color        = color,
                 StrokeWidth  = 1,
                 Label        = i.ToString(),
                 LegendIcon   = ChartLegendIcon.Rectangle,
                 DataMarker   = new ChartDataMarker()
                 {
                     ShowMarker        = true,
                     ShowLabel         = false,
                     MarkerBorderColor = color,
                     MarkerBorderWidth = 0,
                     MarkerColor       = color,
                     MarkerWidth       = 3,
                     MarkerHeight      = 3
                 }
             };
             chart.PrimaryAxis = new CategoryAxis()
             {
                 LabelPlacement     = LabelPlacement.BetweenTicks,
                 ShowMajorGridLines = false
             };
             chart.SecondaryAxis = new NumericalAxis()
             {
                 Maximum       = max,
                 Minimum       = min,
                 Interval      = interval,
                 AxisLineStyle = new ChartLineStyle()
                 {
                     StrokeWidth = 0
                 },
                 MajorTickStyle = new ChartAxisTickStyle()
                 {
                     TickSize = 0
                 }
             };
             chart.Legend = new ChartLegend()
             {
                 OverflowMode           = ChartLegendOverflowMode.Wrap,
                 DockPosition           = LegendPlacement.Top,
                 IconHeight             = 10,
                 IconWidth              = 10,
                 ToggleSeriesVisibility = true
             };
             chart.Series.Add(columnSeries);
         }
     }
 }
Beispiel #22
0
        private void InitializaeChart()
        {
            BMIHistogramViewModel viewModel = new BMIHistogramViewModel();

            //this.BindingContext = viewModel.BMIs;

            //LineChart chart = new LineChart() { Entries = viewModel.BMIEntries };
            //this.chartView.Chart = chart;

            // Chart design
            this.sfCH.AreaBorderColor = Color.FromHex("#2196F3");
            this.sfCH.BackgroundColor = Color.Transparent;

            //Initializing primary axis
            CategoryAxis primaryAxis = new CategoryAxis();

            /*DateTime NowTime = DateTime.UtcNow;
             * DateTimeAxis primaryAxis = new DateTimeAxis()
             * {
             *  Minimum = new DateTime(NowTime.Year, NowTime.Month,NowTime.Day-15),
             *  Maximum = new DateTime(NowTime.Year, NowTime.Month, NowTime.Day+1) // last day in this mounth: DateTime.DaysInMonth(NowTime.Year, NowTime.Month)
             * };*/

            primaryAxis.Title.Text = "Time";
            //primaryAxis.AxisLineStyle = ChartLineStyle.

            this.sfCH.PrimaryAxis = primaryAxis;

            //Initializing secondary Axis
            NumericalAxis secondaryAxis = new NumericalAxis();

            secondaryAxis.Title.Text = "Metric (Weight Kgr)";
            //secondaryAxis.AxisLineStyle


            this.sfCH.SecondaryAxis = secondaryAxis;

            //Initializing column series
            LineSeries BMI_series = new LineSeries();

            //series.SetBinding(ChartSeries.ItemsSourceProperty, "BMIs");
            BMI_series.ItemsSource  = viewModel.BMIs;
            BMI_series.XBindingPath = "time";
            BMI_series.YBindingPath = "BMI";
            BMI_series.Color        = Color.FromHex("#E040FB");
            BMI_series.Label        = "BMI";

            BMI_series.DataMarker    = new ChartDataMarker();
            BMI_series.EnableTooltip = true;

            BMI_series.StrokeDashArray = new double[2] {
                2, 3
            };
            //Enable animation for first BMI series in series collection.
            BMI_series.EnableAnimation = true;
            //BMI_series.AnimationDuration = 2;

            FastLineSeries Weight_series = new FastLineSeries();

            Weight_series.ItemsSource   = viewModel.BMIs;
            Weight_series.XBindingPath  = "time";
            Weight_series.YBindingPath  = "weight";
            Weight_series.Label         = "Weight";
            Weight_series.Color         = Color.FromHex("#A0EE02");
            Weight_series.DataMarker    = new ChartDataMarker();
            Weight_series.EnableTooltip = true;
            //Enable animation for first Weight series in series collection.
            Weight_series.EnableAnimation = true;


            this.sfCH.Legend = new ChartLegend(); // Shwo top serie Labels
            this.sfCH.Series.Clear();             // clear history when come reopen this page

            this.sfCH.Series.Add(BMI_series);
            this.sfCH.Series.Add(Weight_series);

            //// add Line Annotation to Axis
            //LineAnnotation annotation = new LineAnnotation();
            //annotation.X1 = 0;
            //annotation.Y1 = 50;
            //annotation.X2 = viewModel.BMIs.Count;
            //annotation.Y2 = 50;
            //annotation.StrokeColor = Color.FromHex("#FFFF00");
            //this.sfCH.ChartAnnotations.Add(annotation);

            // Zoom Behavior
            ChartZoomPanBehavior zoomPanBehavior = new ChartZoomPanBehavior();

            zoomPanBehavior.ZoomMode = ZoomMode.X;
            this.sfCH.ChartBehaviors.Add(zoomPanBehavior);

            // Selection
            this.sfCH.EnableSeriesSelection = true;
            this.sfCH.SeriesSelectionColor  = Color.Red;

            //this.Content = sfCH;
        }