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; }
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); } } }
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); }
/// <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; }
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; }
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); }
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); }
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); }
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); } } }
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; }