/// <summary> /// The method which adds the regression model series. /// </summary> private static void AddRegressionSeries(RadHtmlChart chart, string xField, string yField, string seriesName) { ScatterLineSeries scatterLineSeries1 = new ScatterLineSeries(); scatterLineSeries1.Name = seriesName; scatterLineSeries1.DataFieldX = xField; scatterLineSeries1.DataFieldY = yField; scatterLineSeries1.LabelsAppearance.Visible = false; scatterLineSeries1.MarkersAppearance.Visible = false; chart.PlotArea.Series.Add(scatterLineSeries1); }
void bindData() { ScatterLineSeries series = new ScatterLineSeries(); Chart.Series.Add(series); var xAxis = new NumericXAxis(); var yAxis = new NumericYAxis(); series.XAxis = xAxis; series.YAxis = yAxis; series.XMemberPath = "Argument"; series.YMemberPath = "Value"; Chart.Axes.Add(xAxis); Chart.Axes.Add(yAxis); series.DataSource = chartSource; }
private void UpdateTrailSeries(Series series) { ScatterLineSeries trailSeries = series.Tag as ScatterLineSeries; if (trailSeries != null) { trailSeries.Brush = series.ActualBrush; trailSeries.MarkerBrush = series.ActualBrush; MotionDataSource <DataPoint> dm = trailSeries.ItemsSource as MotionDataSource <DataPoint>; if (dm != null) { dm.Add(new DataPoint { ValueX = ((IList <MotionDataPoint>)series.ItemsSource)[0].ValueX, ValueY = ((IList <MotionDataPoint>)series.ItemsSource)[0].ValueY, ToolTip = ((IList <MotionDataPoint>)series.ItemsSource)[0].ToolTip }); } } }
/// <summary> /// Starts animation of data points over time in xamDataChart control /// </summary> public void Play() { if (!this.IsInitialized) { this.Initialize(); } //starting play when playback has finished resets the current element shown to 0 if (this.CurrentElementShown >= this.ElementsMaxCount - 1) { this.CurrentElementShown = 0; if (this.DateTimeSlider != null) { this.DateTimeSlider.Value = 0; } } if (this.IsInitialized && this.CurrentElementShown == 0) { //clear scatter series when starting playback from the beginning foreach (Series series in this.Chart.Series) { ScatterLineSeries trailSeries = series as ScatterLineSeries; if (trailSeries != null) { if (trailSeries.ItemsSource != null) { ((IList)trailSeries.ItemsSource).Clear(); } } } } if (this.DateTimeSlider != null) { this.DateTimeSlider.IsEnabled = false; } this.DataUpdateTimer.Start(); OnPlaybackStarted(new EventArgs()); }
private void AllData_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { foreach (DataToChart data in e.NewItems) { // Make a series for the line ScatterLineSeries scatterLineSeries = new ScatterLineSeries { Name = $"Line {LineCount}", ItemsSource = data.DataPoints, XValueBinding = new PropertyNameDataPointBinding("XValue"), YValueBinding = new PropertyNameDataPointBinding("YValue"), DisplayName = $"Line {LineCount}", LegendTitle = $"Line {LineCount}", }; ChartTrackBallBehavior.SetIntersectionTemplate(scatterLineSeries, ChartTrackIntersectionTemplate); // Add the line to the Chart's Series collection MainChart.Series.Add(scatterLineSeries); // Increment arbitrary counter LineCount++; } }
protected void AddCuartil(int pIdTabulador) { TabuladoresNegocio nTabuladores = new TabuladoresNegocio(); List <E_TABULADOR_MAESTRO> vTabuladores = nTabuladores.ObtieneTabuladorMaestro(ID_TABULADOR: pIdTabulador).Select(s => new E_TABULADOR_MAESTRO() { NO_CATEGORIA = s.NO_CATEGORIA, MN_MINIMO = s.MN_MINIMO, MN_PRIMER_CUARTIL = s.MN_PRIMER_CUARTIL, MN_MEDIO = s.MN_MEDIO, MN_SEGUNDO_CUARTIL = s.MN_SEGUNDO_CUARTIL, MN_MAXIMO = s.MN_MAXIMO, NO_NIVEL = s.NO_NIVEL, CL_TABULADOR = s.CL_TABULADOR }).ToList(); List <E_CUARTIL_COMPARACION> vCuartiles = Cuartil(vTabuladores, vCuartilComparativo); var vIdCategorias = vTabuladores.GroupBy(test => test.NO_CATEGORIA).Select(grp => grp.First()).ToList(); foreach (var item in vIdCategorias) { ScatterLineSeries vCuartilComparativoG = new ScatterLineSeries(); foreach (var itemC in vCuartiles) { if (item.NO_CATEGORIA == itemC.NO_CATEGORIA) { //if (itemC.NO_NIVEL >= pComienza && itemC.NO_NIVEL <= pTermina) //{ vCuartilComparativoG.SeriesItems.Add(itemC.NO_NIVEL, itemC.MN_CATEGORIA); vCuartilComparativoG.LabelsAppearance.Visible = false; vCuartilComparativoG.MarkersAppearance.Visible = false; vCuartilComparativoG.Name = itemC.NO_CATEGORIA.ToString(); // } } } char nb = (char)(item.NO_CATEGORIA + 64); vCuartilComparativoG.Name = nb.ToString() + " " + item.CL_TABULADOR; ScatterChartGraficaAnalisis.PlotArea.Series.Add(vCuartilComparativoG); } }
private static void AddRegressionSeries(DataTable dt, RadHtmlChart chart, string xField, string yField, string seriesName) { ScatterLineSeries scatterLineSeries1 = new ScatterLineSeries(); //scatterLineSeries1.DataFieldX = xField; //scatterLineSeries1.DataFieldY = yField; foreach (DataRow item in dt.Rows) { scatterLineSeries1.SeriesItems.Add(decimal.Parse(item["__Xest"].ToString()), decimal.Parse(item["__Yest"].ToString())); } scatterLineSeries1.Name = "Tendencia"; scatterLineSeries1.LabelsAppearance.Visible = false; scatterLineSeries1.MarkersAppearance.Visible = false; chart.PlotArea.Series.Add(scatterLineSeries1); //vPrimerScatterSeries.SeriesItems.Add(iEmp.NO_NIVEL, iEmp.MN_SUELDO_ORIGINAL); //vPrimerScatterSeries.LabelsAppearance.Visible = false; //vPrimerScatterSeries.Name = iEmp.NB_TABULADOR.ToString(); //dt.Rows.Add(iEmp.NO_NIVEL, iEmp.MN_SUELDO_ORIGINAL); }
/// <summary> /// Adds chart series. Currently the method supports Area, Bar, Column, Line, Scatter and ScatterLine series. You can, however, expand that list here. /// </summary> private static void AddChartSeriesType(RadHtmlChart HtmlChart, string SeriesType, string DataFieldY, string DataFieldX, int Index, string SeriesName, string TooltipsTemplate, string LabelsFormatString) { switch (SeriesType) { case "AreaSeries": AreaSeries areaSeries1 = new AreaSeries(); areaSeries1.Name = SeriesName; areaSeries1.DataFieldY = DataFieldY + Index; areaSeries1.TooltipsAppearance.ClientTemplate = TooltipsTemplate; areaSeries1.LabelsAppearance.DataFormatString = LabelsFormatString; HtmlChart.PlotArea.Series.Add(areaSeries1); break; case "BarSeries": BarSeries barSeries1 = new BarSeries(); barSeries1.Name = SeriesName; barSeries1.DataFieldY = DataFieldY + Index; barSeries1.TooltipsAppearance.ClientTemplate = TooltipsTemplate; barSeries1.LabelsAppearance.DataFormatString = LabelsFormatString; HtmlChart.PlotArea.Series.Add(barSeries1); break; case "ColumnSeries": ColumnSeries columnSeries1 = new ColumnSeries(); columnSeries1.Name = SeriesName; columnSeries1.DataFieldY = DataFieldY + Index; columnSeries1.TooltipsAppearance.ClientTemplate = TooltipsTemplate; columnSeries1.LabelsAppearance.DataFormatString = LabelsFormatString; HtmlChart.PlotArea.Series.Add(columnSeries1); break; case "LineSeries": LineSeries lineSeries1 = new LineSeries(); lineSeries1.Name = SeriesName; lineSeries1.DataFieldY = DataFieldY + Index; lineSeries1.TooltipsAppearance.ClientTemplate = TooltipsTemplate; lineSeries1.LabelsAppearance.DataFormatString = LabelsFormatString; HtmlChart.PlotArea.Series.Add(lineSeries1); break; case "ScatterSeries": ScatterSeries scatterSeries1 = new ScatterSeries(); scatterSeries1.Name = SeriesName; scatterSeries1.DataFieldY = DataFieldY + Index; scatterSeries1.DataFieldX = DataFieldX + Index; scatterSeries1.TooltipsAppearance.ClientTemplate = TooltipsTemplate; scatterSeries1.LabelsAppearance.DataFormatString = LabelsFormatString; HtmlChart.PlotArea.Series.Add(scatterSeries1); break; case "ScatterLineSeries": ScatterLineSeries scatterLineSeries1 = new ScatterLineSeries(); scatterLineSeries1.Name = SeriesName; scatterLineSeries1.DataFieldY = DataFieldY + Index; scatterLineSeries1.DataFieldX = DataFieldX + Index; scatterLineSeries1.TooltipsAppearance.ClientTemplate = TooltipsTemplate; scatterLineSeries1.LabelsAppearance.DataFormatString = LabelsFormatString; HtmlChart.PlotArea.Series.Add(scatterLineSeries1); break; default: break; } }
/// <summary> /// Initializes a new instance of the ScatterLineSeriesAutomationPeer class. /// </summary> public ScatterLineSeriesAutomationPeer(ScatterLineSeries owner) : base(owner) { }
private void radButton1_Click(object sender, EventArgs e) { if (path_csv.Length == 0 & return_csv_st.Length == 0) { MessageBox.Show("Oops! You forgot to add a CSV file :("); return; } if (path_dat.Length == 0 & return_dat.Length == 0) { MessageBox.Show("Oops! You forgot to add a DAT file :("); return; } if (seriesColor.Value == Color.White) { MessageBox.Show("Oops! You forgot to specify the color (don't select WHITE) :("); return; } var csvTable = new DataTable(); if (return_csv_st.Length == 0) { string stream = File.ReadAllText(path_csv); using (var csvReader = new CsvReader(new StringReader(stream))) { csvTable.Load(csvReader); } } else { return_csv.Trim(); path_csv = "Added manually"; using (var csvReader = new CsvReader(new StringReader(return_csv))) { csvTable.Load(csvReader); } } List <SearchParameters> searchParameters = new List <SearchParameters>(); radTextBox2.Clear(); radTextBox2.AppendText("Rows in CSV: " + Convert.ToString(csvTable.Rows.Count) + "\n"); radTextBox2.AppendText(Environment.NewLine); radTextBox2.AppendText("Columns in CSV: " + Convert.ToString(csvTable.Columns.Count) + "\n"); radTextBox2.AppendText(Environment.NewLine); // Include all data in searchParameters for (int i = 0; i < csvTable.Rows.Count; i++) { searchParameters.Add(new SearchParameters { alpha = csvTable.Rows[i][0].ToString(), const_l = csvTable.Rows[i][1].ToString(), const_d = csvTable.Rows[i][2].ToString(), const_cdp = csvTable.Rows[i][3].ToString(), const_cm = csvTable.Rows[i][4].ToString(), top_xtr = csvTable.Rows[i][5].ToString(), bot_xtr = csvTable.Rows[i][6].ToString() }); } name_csv = radTextBox1.Text; List <Coords> coords = new List <Coords>(); if (return_dat_st.Length == 0) { data = File.ReadAllText(path_dat); } else { data = return_dat; } radTextBox2.AppendText(Environment.NewLine); radTextBox2.AppendText(data); radTextBox2.AppendText(Environment.NewLine); data.Trim(); data = Regex.Replace(data, @" ", ";"); //data = Regex.Replace(data, @"\s\s\s\s\s", "\n"); data = Regex.Replace(data, @"; ", ""); data = Regex.Replace(data, @" ", ";"); radTextBox2.AppendText(data); radTextBox2.AppendText(Environment.NewLine); var lines = Regex.Split(data, "\r\n|\r|\n"); radTextBox2.AppendText(lines.Length.ToString()); for (int i = 1; i < lines.Length; i++) { var row = Regex.Split(lines[i], ";"); coords.Add(new Coords { x = row[0].ToString(), y = row[1].ToString() }); } // =========================================================================== /* * radChartView1.Series.Clear(); * lineSeries_constlvsalph.Clear(); * * for(int i = 0; i < radListView1.Items.Count; i++) * { * lineSeries_constlvsalph.Add(new ScatterLineSeries { Name = name_csv, BorderColor = color_csv }); * } * * foreach (ScatterLineSeries lineSerie in lineSeries_constlvsalph) * { * foreach (var searchParameter in searchParameters) * { * lineSerie.DataPoints.Add(new ScatterDataPoint( * double.Parse(searchParameter.alpha, System.Globalization.CultureInfo.InvariantCulture), * double.Parse(searchParameter.const_l, System.Globalization.CultureInfo.InvariantCulture) * )); * } * radChartView1.Series.Add(lineSerie); * } */ // =========================================================================== ScatterLineSeries lineSeries1 = new ScatterLineSeries(); radChartView1.AreaType = ChartAreaType.Cartesian; ScatterLineSeries lineSeries2 = new ScatterLineSeries(); radChartView2.AreaType = ChartAreaType.Cartesian; ScatterLineSeries lineSeries3 = new ScatterLineSeries(); radChartView3.AreaType = ChartAreaType.Cartesian; ScatterLineSeries lineSeries4 = new ScatterLineSeries(); radChartView4.AreaType = ChartAreaType.Cartesian; ScatterLineSeries lineSeries5 = new ScatterLineSeries(); radChartView5.AreaType = ChartAreaType.Cartesian; ScatterLineSeries lineSeries6 = new ScatterLineSeries(); radChartView6.AreaType = ChartAreaType.Cartesian; ScatterLineSeries lineSeries7 = new ScatterLineSeries(); // Chord Line ScatterLineSeries lineSeries8 = new ScatterLineSeries(); // Camber Line // radChartView1.Series.Clear(); radChartView2.Series.Clear(); radChartView3.Series.Clear(); radChartView4.Series.Clear(); ScatterLineSeries[] tbs = { lineSeries1, lineSeries2, lineSeries3, lineSeries4, lineSeries5, lineSeries6, lineSeries7, lineSeries8 }; int nth = radListView1.Items.Count; tbs[0].Name = name_csv; tbs[0].BorderColor = color_csv; tbs[0].PointSize = SizeF.Empty; tbs[0].ShowLabels = true; tbs[1].Name = name_csv; tbs[1].BorderColor = color_csv; tbs[1].PointSize = SizeF.Empty; tbs[1].LegendTitle = name_csv; tbs[2].Name = name_csv; tbs[2].BorderColor = color_csv; tbs[2].PointSize = SizeF.Empty; tbs[2].LegendTitle = name_csv; tbs[3].BorderColor = color_csv; tbs[3].Name = name_csv; tbs[3].PointSize = SizeF.Empty; tbs[3].LegendTitle = name_csv; tbs[4].BorderColor = color_csv; tbs[4].Name = name_csv; tbs[4].PointSize = SizeF.Empty; tbs[4].LegendTitle = name_csv; tbs[5].BorderColor = color_csv; tbs[5].Name = name_csv; tbs[5].PointSize = SizeF.Empty; tbs[5].LegendTitle = name_csv; tbs[6].BorderColor = chordColor.Value; tbs[6].Name = name_csv; tbs[6].PointSize = SizeF.Empty; tbs[6].LegendTitle = name_csv; tbs[7].BorderColor = camberColor.Value; tbs[7].Name = name_csv; tbs[7].PointSize = SizeF.Empty; tbs[7].LegendTitle = name_csv; if (radCheckBox2.Checked) { lineSeries7.DataPoints.Add(new ScatterDataPoint(0, 0)); lineSeries7.DataPoints.Add(new ScatterDataPoint(1, 0)); } foreach (var searchParameter in searchParameters) { // Calculations double const_cdf = double.Parse(searchParameter.const_d, System.Globalization.CultureInfo.InvariantCulture) - double.Parse(searchParameter.const_cdp, System.Globalization.CultureInfo.InvariantCulture); double x_cp = 0.25 - double.Parse(searchParameter.const_cm, System.Globalization.CultureInfo.InvariantCulture) / ( double.Parse(searchParameter.const_l, System.Globalization.CultureInfo.InvariantCulture) * Math.Cos(double.Parse(searchParameter.alpha, System.Globalization.CultureInfo.InvariantCulture) + double.Parse(searchParameter.const_d, System.Globalization.CultureInfo.InvariantCulture) * Math.Sin(double.Parse(searchParameter.alpha, System.Globalization.CultureInfo.InvariantCulture)) )); // ========================================================================= lineSeries1.DataPoints.Add(new ScatterDataPoint( double.Parse(searchParameter.alpha, System.Globalization.CultureInfo.InvariantCulture), double.Parse(searchParameter.const_l, System.Globalization.CultureInfo.InvariantCulture) )); lineSeries2.DataPoints.Add(new ScatterDataPoint( double.Parse(searchParameter.alpha, System.Globalization.CultureInfo.InvariantCulture), double.Parse(searchParameter.const_d, System.Globalization.CultureInfo.InvariantCulture) )); lineSeries3.DataPoints.Add(new ScatterDataPoint( double.Parse(searchParameter.alpha, System.Globalization.CultureInfo.InvariantCulture), const_cdf )); lineSeries4.DataPoints.Add(new ScatterDataPoint( double.Parse(searchParameter.alpha, System.Globalization.CultureInfo.InvariantCulture), double.Parse(searchParameter.const_cm, System.Globalization.CultureInfo.InvariantCulture) )); lineSeries5.DataPoints.Add(new ScatterDataPoint( double.Parse(searchParameter.alpha, System.Globalization.CultureInfo.InvariantCulture), x_cp )); } foreach (var coord in coords) { lineSeries6.DataPoints.Add(new ScatterDataPoint( double.Parse(coord.x, System.Globalization.CultureInfo.InvariantCulture), double.Parse(coord.y, System.Globalization.CultureInfo.InvariantCulture) )); radTextBox2.AppendText("x: " + coord.x + " y: " + coord.y + "\n"); if (radCheckBox1.Checked) { double x = double.Parse(coord.x, System.Globalization.CultureInfo.InvariantCulture); //line // Series8.DataPoints.Add(new ScatterDataPoint(x3, double.Parse(coord.y, System.Globalization.CultureInfo.InvariantCulture)); } } radChartView1.Series.Add(lineSeries1); radChartView2.Series.Add(lineSeries2); radChartView3.Series.Add(lineSeries3); radChartView4.Series.Add(lineSeries4); radChartView5.Series.Add(lineSeries5); // xcp radChartView6.Series.Add(lineSeries6); //airfoil if (radCheckBox1.Checked) { radChartView6.Series.Add(lineSeries8); // Chamber Line } if (radCheckBox2.Checked) { radChartView6.Series.Add(lineSeries7); // Chord Line } radListView1.Items.Add(name_csv, path_csv, color_csv); LinearAxis verticalAxis = radChartView6.Axes.Get <LinearAxis>(1); verticalAxis.Maximum = 1; /////////////////////////////*/ cleanall(); searchParameters.Clear(); csvTable.Clear(); }
private void Radio_CheckedChanged(object sender, System.EventArgs e) { Initialize(); var radio = sender as MetroRadioButton; var comp = radio.Tag as BaseComponent; var lineSeries = new ScatterLineSeries() { ShowLabels = true, LegendTitle = "Consumption", Name = "Consumption:", LabelFormat = "{0:F}", BorderWidth = 2 //Spline = true, // закруглять углы }; var lineSeriesMean = new ScatterLineSeries() { ShowLabels = true, LegendTitle = "Consumption Mean", Name = "Consumption Mean:", LabelFormat = "{0:F}", BorderWidth = 2 //Spline = true, // закруглять углы }; var lineSeriesMin = new ScatterLineSeries { BorderColor = Color.Green, LegendTitle = "Alert", ShowLabels = false, PointSize = new SizeF(0, 0), BackColor = Color.Green }; var lineSeriesNorm = new ScatterLineSeries { BorderColor = Color.Yellow, LegendTitle = "Max", ShowLabels = false, PointSize = new SizeF(0, 0), BackColor = Color.Yellow }; var lineSeriesMax = new ScatterLineSeries { BorderColor = Color.Red, LegendTitle = "AWL", ShowLabels = false, PointSize = new SizeF(0, 0), BackColor = Color.Red }; radChartView1.Series.Clear(); foreach (var values in _graph.Graph[comp].OrderBy(i => i.Key.Hours)) { if (_graph.Limits[comp].Max > 0) { lineSeriesMax.DataPoints.Add(new ScatterDataPoint(values.Key.Hours.Value, _graph.Limits[comp].Max)); } if (_graph.Limits[comp].Normal > 0) { lineSeriesNorm.DataPoints.Add(new ScatterDataPoint(values.Key.Hours.Value, _graph.Limits[comp].Normal)); } if (_graph.Limits[comp].Min > 0) { lineSeriesMin.DataPoints.Add(new ScatterDataPoint(values.Key.Hours.Value, _graph.Limits[comp].Min)); } lineSeries.DataPoints.Add(new ScatterDataPoint(values.Key.Hours.Value, (double)values.Value.Consumption)); lineSeriesMean.DataPoints.Add(new ScatterDataPoint(values.Key.Hours.Value, (double)values.Value.ConsumptionMean)); } radChartView1.Series.Clear(); if (lineSeriesMax.DataPoints.Count > 0) { radChartView1.Series.Add(lineSeriesMax); } if (lineSeriesNorm.DataPoints.Count > 0) { radChartView1.Series.Add(lineSeriesNorm); } if (lineSeriesMin.DataPoints.Count > 0) { radChartView1.Series.Add(lineSeriesMin); } radChartView1.Series.Add(lineSeries); radChartView1.Series.Add(lineSeriesMean); LinearAxis horizontalAxis = radChartView1.Axes.Get <LinearAxis>(0); //horizontalAxis.Minimum = (double)_graph.Graph[comp].OrderBy(i => i.Key.Hours).FirstOrDefault().Key.Hours; //horizontalAxis.Maximum = (double)_graph.Graph[comp].OrderBy(i => i.Key.Hours).LastOrDefault().Key.Hours; //horizontalAxis.MajorStep = 10; horizontalAxis.LastLabelVisibility = AxisLastLabelVisibility.Clip; horizontalAxis.LabelFitMode = AxisLabelFitMode.Rotate; horizontalAxis.LabelRotationAngle = 300; LinearAxis verticalAxis = radChartView1.Axes.Get <LinearAxis>(1); //verticalAxis.Minimum = _graph.Graph[comp].Min(i => i.Value); //verticalAxis.Maximum = _graph.Graph[comp].Max(i => i.Value); verticalAxis.MajorStep = 0.5; radChartView1.Refresh(); radChartView1.Update(); radRangeSelector1.AssociatedControl = radChartView1; }
/// <summary> /// The method which adds the regression model series. /// </summary> private static void AddRegressionSeries(RadHtmlChart chart, string xField, string yField, string seriesName) { ScatterLineSeries scatterLineSeries1 = new ScatterLineSeries(); scatterLineSeries1.Name = seriesName; scatterLineSeries1.DataFieldX = xField; scatterLineSeries1.DataFieldY = yField; scatterLineSeries1.LabelsAppearance.Visible = false; scatterLineSeries1.MarkersAppearance.Visible = false; chart.PlotArea.Series.Add(scatterLineSeries1); }