private void GenerarGrafica() { try { var Aux = PageView.SelectedPage; if (Aux.Enabled) { BarSeries barSeria = new BarSeries(); barSeria.DataSource = oList; barSeria.ValueMember = Aux.Tag.ToString(); barSeria.CategoryMember = "Id"; ChartPanZoomController panZoomController = new ChartPanZoomController(); panZoomController.PanZoomMode = ChartPanZoomMode.Horizontal; chart1.View.Palette = KnownPalette.Arctic; chart = chart1; chart.Series.Clear(); chart.Series.Add(barSeria); chart.Title = Aux.Text; chart.ShowPanZoom = true; chart.Controllers.Add(panZoomController); chart.Dock = DockStyle.Fill; Aux.Controls.Add(chart); } } catch (Exception ex) { throw ex; } }
public LiveDataModel(JBC_API_Remote jbcConnect, RadChartView _radChartView, Label labelHotAirTemp, Label labelExtTCTemp, Label labelAirFlow, Label labelStatus, long stationID) { m_jbcConnect = jbcConnect; m_radChartView = _radChartView; m_labelHotAirTemp = labelHotAirTemp; m_labelExtTCTemp = labelExtTCTemp; m_labelAirFlow = labelAirFlow; m_labelStatus = labelStatus; m_stationID = stationID; m_timerPrintSeries.Interval = 100; m_timerPrintSeries.Tick += Tick_PrintSeries; //Data collection BindingList <DataSerie> collection = new BindingList <DataSerie>(); DataProfileHotAirTemp = collection; collection = new BindingList <DataSerie>(); DataProfileExtTCTemp = collection; collection = new BindingList <DataSerie>(); DataProfileAirFlow = collection; collection = new BindingList <DataSerie>(); DataHotAirTemp = collection; collection = new BindingList <DataSerie>(); DataExtTCTemp = collection; collection = new BindingList <DataSerie>(); DataAirFlow = collection; collection = new BindingList <DataSerie>(); DataVerticalMark = collection; }
private void GenerarGraficas() { try { var Aux = PageView.SelectedPage; if (Aux.Enabled) { BarSeries barSeria = new BarSeries(); barSeria.DataSource = Historica || Ensamble ? oHistoria : oList[0].Valores; barSeria.ValueMember = Aux.Tag.ToString(); barSeria.CategoryMember = "Limite"; ChartPanZoomController panZoomController = new ChartPanZoomController(); panZoomController.PanZoomMode = ChartPanZoomMode.Horizontal; chart1.View.Palette = KnownPalette.Arctic; chart = chart1; chart.Series.Clear(); chart.Series.Add(barSeria); chart.Title = Aux.Text; chart.ShowPanZoom = true; chart.Controllers.Add(panZoomController); chart.Dock = DockStyle.Fill; Aux.Controls.Add(chart); } } catch (Exception ex) { RadMessageBox.Show("Ocurrio un error generar la gráfica\n" + ex.Message, this.Text, MessageBoxButtons.OK, RadMessageIcon.Error); } }
//Public helper methods public void plotChannels(RadChartView chart) { foreach (sXpChannel channel in this.Channels) { //Mag if (channel.DisplayMag == true && !chart.Series.Contains(channel.MagSeries)) { chart.Series.Add(channel.MagSeries); } else if (channel.DisplayMag == false && chart.Series.Contains(channel.MagSeries)) { chart.Series.Remove(channel.MagSeries); } //Phase if (channel.DisplayPhase == true && !chart.Series.Contains(channel.PhaseSeries)) { chart.Series.Add(channel.PhaseSeries); } else if (channel.DisplayPhase == false && chart.Series.Contains(channel.PhaseSeries)) { chart.Series.Remove(channel.PhaseSeries); } } }
private void SetCartesianGrid(RadChartView chart) { CartesianArea area = chart.GetArea <CartesianArea>(); area.ShowGrid = true; CartesianGrid grid = area.GetGrid <CartesianGrid>(); grid.DrawHorizontalFills = false; grid.DrawVerticalFills = false; grid.DrawHorizontalStripes = true; grid.DrawVerticalStripes = true; grid.ForeColor = Color.LightGray; grid.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; }
public MainForm() { InitializeComponent(); Random random = new Random(); // Initial Population Population initialPopulation = new Population(random); // List to store best of every iteration var bestResult = new List<double>(); // List to store average of every iteration var averageResult = new List<double>(); List<GraphMapper> globalBestOfIteration = new List<GraphMapper>(); List<GraphMapper> localBestOfIteration = new List<GraphMapper>(); List<GraphMapper> averageOfIteration = new List<GraphMapper>(); for (int i = 0; i < 20; i++) { List<GraphMapper> populationFitnessValue = new List<GraphMapper>(); List<GraphMapper> populationGFitnessValue = new List<GraphMapper>(); foreach (Chromosome chromosome in initialPopulation.Chromosomes) { if (chromosome.FitnessValue > initialPopulation.LocalBest.FitnessValue) { initialPopulation.LocalBest.ValueX = chromosome.ValueX; initialPopulation.LocalBest.ValueY = chromosome.ValueY; } if (initialPopulation.LocalBest.FitnessValue > initialPopulation.GlobalBest.FitnessValue) { initialPopulation.GlobalBest = initialPopulation.LocalBest; } } foreach (Chromosome chromosome in initialPopulation.Chromosomes) { chromosome.CalculateVelocity(); chromosome.UpdatePosition(); populationFitnessValue.Add(new GraphMapper { Category = "C " + (initialPopulation.Chromosomes.IndexOf(chromosome) + 1).ToString(), Value = chromosome.FitnessValue, }); populationGFitnessValue.Add(new GraphMapper { Category = "C " + (initialPopulation.Chromosomes.IndexOf(chromosome) + 1).ToString(), Value = chromosome.GlobalBest.FitnessValue, }); } List<SeriesMapper> listOfGraphMappers = new List<SeriesMapper> { new SeriesMapper { Category = "Position Fitness Value", GraphDataSource = populationFitnessValue, }, new SeriesMapper { Category = "Global Best Fitness Value", GraphDataSource = populationGFitnessValue, }, }; #region Add Charts dynamically to Form CartesianArea cartesianArea = new CartesianArea(); int heightGraph = 0; if (i > 0) { heightGraph = this.Controls[i - 1].Height + this.Controls[i - 1].Location.Y; } RadChartView radChart = new RadChartView { AreaDesign = cartesianArea, Location = new Point(0, heightGraph), Name = "radChartView1", ShowGrid = true, Size = new Size(1300, 700), TabIndex = 0, Text = "radChartView1", Title = "Iteration " + (i + 1).ToString(), ShowTitle = true, ShowLegend = true, }; foreach (SeriesMapper graphMappers in listOfGraphMappers) { LineSeries series = new LineSeries { LegendTitle = graphMappers.Category, PointSize = new SizeF(10, 10), BorderWidth = 2, CategoryMember = "Category", ValueMember = "Value", DataSource = graphMappers.GraphDataSource, ShowLabels = true, CombineMode = ChartSeriesCombineMode.None }; radChart.Series.Add(series); radChart.ShowSmartLabels = true; ((CartesianArea)radChart.View.Area).ShowGrid = true; } this.Controls.Add(radChart); radChart.ExportToImage(@"C:\Users\Farjad\Desktop\TOCI2\" + radChart.Title + ".png", radChart.Size); #endregion globalBestOfIteration.Add(new GraphMapper { Category = "G " + (i + 1).ToString(), Value = initialPopulation.LocalBest.FitnessValue, //Value = initialPopulation.Chromosomes.FirstOrDefault(m => m.FitnessValue == initialPopulation.Chromosomes.Max(w => w.FitnessValue)).FitnessValue, }); localBestOfIteration.Add(new GraphMapper { Category = "G " + (i + 1).ToString(), Value = initialPopulation.Chromosomes.Max(m => m.FitnessValue), }); averageOfIteration.Add(new GraphMapper { Category = "G " + (i + 1).ToString(), Value = initialPopulation.Chromosomes.Average(m => m.FitnessValue), }); } var x = 0; List<SeriesMapper> listOfSeries = new List<SeriesMapper> { new SeriesMapper { Category = "Global Best of Iteration", GraphDataSource = globalBestOfIteration, }, new SeriesMapper { Category = "Local Best of Iteration", GraphDataSource = localBestOfIteration, }, new SeriesMapper { Category = "Average Best of Iteration", GraphDataSource = averageOfIteration, }, }; #region Add Charts dynamically to Form CartesianArea cartesianArea1 = new CartesianArea(); int height = 0; height = this.Controls[Controls.Count - 1].Height + this.Controls[Controls.Count - 1].Location.Y; RadChartView chart = new RadChartView { AreaDesign = cartesianArea1, Location = new Point(0, height), Name = "radChartView1", ShowGrid = true, Size = new Size(1300, 700), TabIndex = 0, Text = "radChartView1", Title = "Summary Graph", ShowTitle = true, ShowLegend = true, }; foreach (SeriesMapper graphMappers in listOfSeries) { LineSeries series = new LineSeries { LegendTitle = graphMappers.Category, PointSize = new SizeF(10, 10), BorderWidth = 2, CategoryMember = "Category", ValueMember = "Value", DataSource = graphMappers.GraphDataSource, ShowLabels = true, CombineMode = ChartSeriesCombineMode.None }; chart.Series.Add(series); chart.ShowSmartLabels = true; ((CartesianArea)chart.View.Area).ShowGrid = true; } this.Controls.Add(chart); chart.ExportToImage(@"C:\Users\Farjad\Desktop\TOCI2\" + chart.Title + ".png", chart.Size); #endregion }
void DisplayOppReports() { try { DataSet ds = objReports.fnGetReports(Common.iProjectID); if (ds.Tables.Count > 0) { foreach (DataTable dt in ds.Tables) { if (dt.Rows.Count > 0) { TableLayoutPanel pnlChart = new TableLayoutPanel(); pnlChart.AutoSize = true; pnlChart.ColumnCount = 2; pnlChart.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50)); pnlChart.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50)); // pnlChart.ColumnStyles.Clear(); pnlChart.RowCount = 4; LinearAxis verticalAxis1 = new LinearAxis(); verticalAxis1.AxisType = AxisType.Second; LinearAxis verticalAxis2 = new LinearAxis(); verticalAxis2.AxisType = AxisType.Second; verticalAxis2.HorizontalLocation = AxisHorizontalLocation.Right; BarSeries AccountsBar = new BarSeries(); AccountsBar.BackColor = new Color(); AccountsBar.BackColor = Color.Green; AccountsBar.VerticalAxis = verticalAxis1; AccountsBar.ShowLabels = true; LineSeries AvgDeltaLine = new LineSeries(); AvgDeltaLine.BorderColor = Color.Red; AvgDeltaLine.ShowLabels = true; AvgDeltaLine.Spline = true; AvgDeltaLine.VerticalAxis = verticalAxis2; BarSeries AccountsCountBar = new BarSeries(); AccountsCountBar.BackColor = Color.Green; AccountsCountBar.ShowLabels = true; BarSeries AvgPotentialBar = new BarSeries(); AvgPotentialBar.BackColor = Color.Brown; AvgPotentialBar.ShowLabels = true; foreach (DataRow dr in dt.Rows) { AccountsBar.DataPoints.Add(new CategoricalDataPoint(dr["AccountsPercentage"].Equals(DBNull.Value) ? 0 : Convert.ToDouble(dr["AccountsPercentage"]), dr["OppStatus"])); AvgDeltaLine.DataPoints.Add(new CategoricalDataPoint(dr["AverageDelta"].Equals(DBNull.Value) ? 0 : Convert.ToDouble(dr["AverageDelta"]), dr["OppStatus"])); AccountsCountBar.DataPoints.Add(new CategoricalDataPoint(dr["Accounts"].Equals(DBNull.Value) ? 0 : Convert.ToDouble(dr["Accounts"]), dr["OppStatus"])); AvgPotentialBar.DataPoints.Add(new CategoricalDataPoint(dr["AvgAccountPotential"].Equals(DBNull.Value) ? 0 : Convert.ToDouble(dr["AvgAccountPotential"]), dr["OppStatus"])); } for (int i = 0; i < 2; i++) { RadChartView chrtReports = new RadChartView(); chrtReports.ElementTree.EnableTheming = false; chrtReports.ThemeName = "ControlDefault"; chrtReports.ShowToolTip = true; if (i == 0) { pnlChart.BackColor = Color.White; chrtReports.BackColor = Color.White;; chrtReports.Series.Add(AccountsBar); chrtReports.Series.Add(AvgDeltaLine); chrtReports.Dock = DockStyle.Fill; pnlChart.Height = 400; TableLayoutPanel legendtbl = new TableLayoutPanel(); legendtbl.ColumnCount = 2; legendtbl.RowCount = 1; legendtbl.Controls.Add(Legendisplay(AccountsBar.BackColor.Name.ToString(), "%Accounts", 0), 0, 0); legendtbl.Controls.Add(Legendisplay(AvgDeltaLine.BorderColor.Name.ToString(), "AvgDelta%", 1), 1, 0); legendtbl.Dock = DockStyle.Top; pnlChart.Controls.Add(ChartTitle(dt.Rows[0]["OppName"].ToString() + "-Opportunity"), 0, 0); pnlChart.Controls.Add(chrtReports, 0, 1); pnlChart.Controls.Add(legendtbl, 0, 2); } else { chrtReports.Series.Add(AccountsCountBar); chrtReports.Series.Add(AvgPotentialBar); TableLayoutPanel legendtbl = new TableLayoutPanel(); legendtbl.ColumnCount = 2; legendtbl.RowCount = 1; legendtbl.Controls.Add(Legendisplay(AccountsCountBar.BackColor.Name.ToString(), "Accounts", 0), 0, 0); legendtbl.Controls.Add(Legendisplay(AvgPotentialBar.BackColor.Name.ToString(), "AvgPotential Per Account", 1), 1, 0); legendtbl.Dock = DockStyle.Top; chrtReports.Dock = DockStyle.Fill; pnlChart.Controls.Add(ChartTitle(dt.Rows[0]["OppName"].ToString() + "-Potential"), 1, 0); pnlChart.Controls.Add(chrtReports, 1, 1); pnlChart.Controls.Add(legendtbl, 1, 2); } } pnlChart.Dock = DockStyle.Top; pnlMain.Controls.Add(pnlChart); Label Opportunitylbl = new Label(); Opportunitylbl.Height = 40; Opportunitylbl.Text = dt.Rows[0]["OppName"].ToString(); Opportunitylbl.Font = new Font(Opportunitylbl.Font.FontFamily, 10); Opportunitylbl.Dock = DockStyle.Top; Opportunitylbl.Padding = new Padding(0, 10, 0, 0); Opportunitylbl.BorderStyle = BorderStyle.FixedSingle; pnlMain.Controls.Add(Opportunitylbl); } } } } catch (Exception ex) { throw ex; } }
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); }
private void GenerarSerie() { var Aux = PageView.SelectedPage; try { if (oSeries.Count > 0) { ChartPanZoomController panZoomController = new ChartPanZoomController(); panZoomController.PanZoomMode = ChartPanZoomMode.Horizontal; chart1.View.Palette = KnownPalette.Material; chart = chart1; chart.Series.Clear(); chart.Title = Aux.Text; chart.ShowPanZoom = true; chart.Controllers.Add(panZoomController); //Create and add Moving Average indicator BollingerBandsIndicator maIndicator = new BollingerBandsIndicator(); maIndicator.CategoryMember = "Fecha"; maIndicator.DataSource = oSeries; maIndicator.Period = 1; maIndicator.StandardDeviations = 1; //Create and add hlc series HlcSeries series = new HlcSeries(); if (Aux.Tag.ToString() == "Cav1") { maIndicator.ValueMember = "Val1"; series.CloseValueMember = "Val1"; series.HighValueMember = "Max1"; series.LowValueMember = "Min1"; } if (Aux.Tag.ToString() == "Cav2") { maIndicator.ValueMember = "Val2"; series.CloseValueMember = "Val2"; series.HighValueMember = "Max2"; series.LowValueMember = "Min2"; } if (Aux.Tag.ToString() == "Cav3") { maIndicator.ValueMember = "Val3"; series.CloseValueMember = "Val3"; series.HighValueMember = "Max3"; series.LowValueMember = "Min3"; } if (Aux.Tag.ToString() == "Cav4") { maIndicator.ValueMember = "Val4"; series.CloseValueMember = "Val4"; series.HighValueMember = "Max4"; series.LowValueMember = "Min4"; } if (Aux.Tag.ToString() == "Cav5") { maIndicator.ValueMember = "Val5"; series.CloseValueMember = "Val5"; series.HighValueMember = "Max5"; series.LowValueMember = "Min5"; } if (Aux.Tag.ToString() == "Cav6") { maIndicator.ValueMember = "Val6"; series.CloseValueMember = "Val6"; series.HighValueMember = "Max6"; series.LowValueMember = "Min6"; } if (Aux.Tag.ToString() == "Cav7") { maIndicator.ValueMember = "Val7"; series.CloseValueMember = "Val7"; series.HighValueMember = "Max7"; series.LowValueMember = "Min7"; } if (Aux.Tag.ToString() == "Cav8") { maIndicator.ValueMember = "Val8"; series.CloseValueMember = "Val8"; series.HighValueMember = "Max8"; series.LowValueMember = "Min8"; } maIndicator.BorderColor = Color.Red; maIndicator.PointSize = SizeF.Empty; chart.Series.Add(maIndicator); series.CategoryMember = "Fecha"; series.DataSource = oSeries; series.BorderColor = Color.Green; chart.ShowLegend = false; chart.Dock = DockStyle.Fill; chart.Series.Add(series); Aux.Controls.Add(chart); } } catch (Exception ex) { RadMessageBox.Show("Ocurrio un error al generar la gráfica\n" + ex.Message, this.Text, MessageBoxButtons.OK, RadMessageIcon.Error); } finally { oEnsamble = null; } }
private void GenerarGraficas() { try { if (oList.Count > 0) { var Aux = PageView.SelectedPage; decimal vMin = 0; if (Aux.Enabled) { ChartPanZoomController panZoomController = new ChartPanZoomController(); panZoomController.PanZoomMode = ChartPanZoomMode.Horizontal; chart1.View.Palette = KnownPalette.Material; chart = chart1; chart.Series.Clear(); chart.Title = Aux.Text; chart.ShowPanZoom = true; chart.Controllers.Add(panZoomController); LineSeries lineSeries = new LineSeries(); LineSeries Min = new LineSeries(); oList[0].Valores.ForEach(item => { if (Aux.Tag.ToString() == "Cav1") { vMin = oList[0].Norma.Cav1; lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val1, item.Hora)); Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora)); } if (Aux.Tag.ToString() == "Cav2") { vMin = oList[0].Norma.Cav2; lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val2, item.Hora)); Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora)); } if (Aux.Tag.ToString() == "Cav3") { vMin = oList[0].Norma.Cav3; lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val3, item.Hora)); Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora)); } if (Aux.Tag.ToString() == "Cav4") { vMin = oList[0].Norma.Cav4; lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val4, item.Hora)); Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora)); } if (Aux.Tag.ToString() == "Cav5") { vMin = oList[0].Norma.Cav5; lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val5, item.Hora)); Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora)); } if (Aux.Tag.ToString() == "Cav6") { vMin = oList[0].Norma.Cav6; lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val6, item.Hora)); Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora)); } if (Aux.Tag.ToString() == "Cav7") { vMin = oList[0].Norma.Cav7; lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val7, item.Hora)); Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora)); } if (Aux.Tag.ToString() == "Cav8") { vMin = oList[0].Norma.Cav8; lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val8, item.Hora)); Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora)); } }); lineSeries.LegendTitle = "Valor"; Min.LegendTitle = "Min"; chart.ShowLegend = true; chart.Series.Add(lineSeries); chart.Series.Add(Min); chart.Dock = DockStyle.Fill; Aux.Controls.Add(chart); } } else { RadMessageBox.Show("No existen datos a graficar", this.Text, MessageBoxButtons.OK, RadMessageIcon.Info); } } catch (Exception ex) { RadMessageBox.Show("Ocurrio un error al generar la gráfica\n" + ex.Message, this.Text, MessageBoxButtons.OK, RadMessageIcon.Error); } }
public void InitGraphs() { Random random = new Random(); // Initial Population // List to store best of every iteration var bestResult = new List<double>(); // List to store average of every iteration var averageResult = new List<double>(); for (int i = 0; i < 20; i++) { Population initialPopulation = new Population(random); List<GraphMapper> bestOfIteration = new List<GraphMapper>(); List<GraphMapper> worstOfIteration = new List<GraphMapper>(); List<GraphMapper> averageOfIteration = new List<GraphMapper>(); initialPopulation.CalculateNormalizedFitness(); initialPopulation.OrderChromosomesDescending(); initialPopulation.CalculateAccumulatedFitness(); for (int j = 0; j < 20; j++) { #region Perform GA Operations // Perform GA Operations initialPopulation.CloneElements(); initialPopulation.PerformMutation(random); initialPopulation.Production(10, random); bestOfIteration.Add(new GraphMapper { Category = "G " + (j + 1).ToString(), Value = initialPopulation.BestFitness, }); worstOfIteration.Add(new GraphMapper { Category = "G " + (j + 1).ToString(), Value = initialPopulation.WorstFitness, }); averageOfIteration.Add(new GraphMapper { Category = "G " + (j + 1).ToString(), Value = initialPopulation.AverageFitness, }); #endregion } List<SeriesMapper> listOfSeries = new List<SeriesMapper> { new SeriesMapper { Category = "Best of Iteration", GraphDataSource = bestOfIteration, }, new SeriesMapper { Category = "Worst of Iteration", GraphDataSource = worstOfIteration, }, new SeriesMapper { Category = "Average of Iteration", GraphDataSource = averageOfIteration, } }; // Add Best And Average Result to respective lists averageResult.Add(initialPopulation.Chromosomes.Sum(m => m.FitnessValue) / initialPopulation.Chromosomes.Count); bestResult.Add(initialPopulation.Chromosomes.Max(m => m.FitnessValue)); #region Add Charts dynamically to Form CartesianArea cartesianArea1 = new CartesianArea(); int height = 0; if (i > 0) { height = this.Controls[i - 1].Height + this.Controls[i - 1].Location.Y; } RadChartView chart = new RadChartView { AreaDesign = cartesianArea1, Location = new Point(0, height), Name = "radChartView1", ShowGrid = true, Size = new Size(1300, 700), TabIndex = 0, Text = "radChartView1", Title = "Iteration " + (i + 1).ToString(), ShowTitle = true, ShowLegend = true, }; foreach (SeriesMapper graphMappers in listOfSeries) { LineSeries series = new LineSeries { LegendTitle = graphMappers.Category, PointSize = new SizeF(10, 10), BorderWidth = 2, CategoryMember = "Category", ValueMember = "Value", DataSource = graphMappers.GraphDataSource, ShowLabels = true, CombineMode = ChartSeriesCombineMode.None }; chart.Series.Add(series); chart.ShowSmartLabels = true; ((CartesianArea)chart.View.Area).ShowGrid = true; } this.Controls.Add(chart); chart.ExportToImage(@"C:\Users\Farjad\Desktop\TOCI2\AIS\" + chart.Title + ".png", chart.Size); #endregion } #region Best of All Chart var heightOfPreviousChart = this.Controls[this.Controls.Count - 1].Height + this.Controls[this.Controls.Count - 1].Location.Y; RadChartView chartForBestOfIterations = new RadChartView { AreaDesign = new CartesianArea(), Location = new Point(0, heightOfPreviousChart), Name = "radChartView1", ShowGrid = true, Size = new Size(1300, 700), TabIndex = 0, Title = "Best of all Iterations", ShowTitle = true, Text = "radChartView1", ShowLegend = true, }; var dataSourceForBestResultsGraph = new List<GraphMapper>(); int counter = 1; bestResult.ForEach(m => { dataSourceForBestResultsGraph.Add(new GraphMapper { Category = "P" + counter.ToString(), Value = m, }); counter += 1; }); LineSeries lineSeriesForBestOfIteration = new LineSeries { LegendTitle = "Best of All Iterations", PointSize = new SizeF(10, 10), BorderWidth = 2, CategoryMember = "Category", ValueMember = "Value", DataSource = dataSourceForBestResultsGraph, ShowLabels = true, CombineMode = ChartSeriesCombineMode.None }; chartForBestOfIterations.Series.Add(lineSeriesForBestOfIteration); chartForBestOfIterations.ShowSmartLabels = true; ((CartesianArea)chartForBestOfIterations.View.Area).ShowGrid = true; this.Controls.Add(chartForBestOfIterations); chartForBestOfIterations.ExportToImage( @"C:\Users\Farjad\Desktop\TOCI2\AIS\" + chartForBestOfIterations.Title + ".png", chartForBestOfIterations.Size); #endregion #region Average of All Chart RadChartView chartForAverageOfIterations = new RadChartView { AreaDesign = new CartesianArea(), //Anchor = AnchorStyles.Left, //Dock = DockStyle.Fill, Location = new Point(0, chartForBestOfIterations.Height + chartForBestOfIterations.Location.Y), Name = "radChartView1", ShowGrid = true, Size = new Size(1300, 700), Title = "Average of all Iterations", ShowTitle = true, TabIndex = 0, Text = "radChartView1", ShowLegend = true, }; var dataSourceForAverageResultsGraph = new List<GraphMapper>(); counter = 1; averageResult.ForEach(m => { dataSourceForAverageResultsGraph.Add(new GraphMapper { Category = "P" + counter, Value = m, }); counter += 1; }); LineSeries lineSeriesForAverageOfIteration = new LineSeries { LegendTitle = "Average of All Iterations", PointSize = new SizeF(10, 10), BorderWidth = 2, CategoryMember = "Category", ValueMember = "Value", DataSource = dataSourceForAverageResultsGraph, ShowLabels = true, CombineMode = ChartSeriesCombineMode.None }; chartForAverageOfIterations.Series.Add(lineSeriesForAverageOfIteration); chartForAverageOfIterations.ShowSmartLabels = true; ((CartesianArea)chartForAverageOfIterations.View.Area).ShowGrid = true; this.Controls.Add(chartForAverageOfIterations); chartForAverageOfIterations.ExportToImage( @"C:\Users\Farjad\Desktop\TOCI2\AIS\" + chartForAverageOfIterations.Title + ".png", chartForAverageOfIterations.Size); #endregion }