Пример #1
0
        public double GetLocationOfValue(object value, NumericalAxis axis)
        {
            NumericalAxisModel model = axis.Model as NumericalAxisModel;

            double val = Convert.ToDouble(value);

            val = (double)model.TransformValue(val);
            double delta           = axis.ActualRange.Maximum - axis.ActualRange.Minimum;
            double normalizedValue = (val - axis.ActualRange.Minimum) / delta;

            IChartView    view = (IChartView)axis.View;
            CartesianArea area = axis.View.GetArea <CartesianArea>();

            double result;

            if (area != null &&
                ((area.Orientation == Orientation.Vertical && axis.AxisType == Telerik.Charting.AxisType.First) ||
                 (area.Orientation == Orientation.Horizontal && axis.AxisType == Telerik.Charting.AxisType.Second)))
            {
                result = view.PlotOriginX + axis.Model.LayoutSlot.X + normalizedValue * (axis.Model.LayoutSlot.Width * view.ZoomWidth);
            }
            else
            {
                result = view.PlotOriginY + ((ChartView)view).Margin.Top + axis.Model.LayoutSlot.Y + (1.0d - normalizedValue) * (axis.Model.LayoutSlot.Height * view.ZoomHeight);
            }

            return(result);
        }
Пример #2
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            CartesianArea area = this.radChartView1.GetArea <CartesianArea>();

            area.ShowGrid = true;

            this.radDropDownList1.SelectedIndex = 0;

            LinearAxis verticalAcix = new LinearAxis();

            verticalAcix.AxisType = AxisType.Second;
            CategoricalAxis  horizontalAxis = new CategoricalAxis();
            PerformanceModel model          = new PerformanceModel();

            for (int i = 0; i < 4; i++)
            {
                BarSeries barSeries = new BarSeries("Performance", "RepresentativeName");
                barSeries.Name           = "Q" + (i + 1);
                barSeries.HorizontalAxis = horizontalAxis;
                barSeries.VerticalAxis   = verticalAcix;
                barSeries.DataSource     = model.GetData(i);
                this.radChartView1.Series.Add(barSeries);
                foreach (DataPointElement pointElement in barSeries.Children)
                {
                    pointElement.BorderWidth = 0;
                }
            }

            Theme theme = Theme.ReadCSSText(@"
                                            theme
                                            {
                                               name: ControlDefault;
                                               elementType: Telerik.WinControls.UI.RadChartElement; 
                                               controlType: Telerik.WinControls.UI.RadChartView; 
                                            }

                                            Bar
                                            {    
                                                HeightAspectRatio
                                                {
                                                    Value: 0.9;
                                                    EndValue: 1;
                                                    MaxValue: 1;
                                                    Frames: 30;
                                                    Interval: 20;
                                                    EasingType: InOutCubic;
                                                    RandomDelay: 200;
                                                    RemoveAfterApply: true; 
                                                }
                                            }
                                            ");

            ThemeRepository.Add(theme, false);
        }
Пример #3
0
        public Form1()
        {
            InitializeComponent();
            InitializeDropDownList();

            this.EnabledQSFButtons = QSFButtons.None;

            BarSeries barSerias = new BarSeries();

            barSerias.ValueMember    = "Value";
            barSerias.CategoryMember = "Date";
            barSerias.DataSource     = DrillDownViewModel.ParseDataByYear();

            radChartView1.Views.AddNew();
            radChartView1.Views.AddNew();
            radChartView1.Title = "Revenue by Years";
            this.radChartView1.ChartElement.ShowTitle = true;
            radChartView1.ChartElement.TitlePosition  = TitlePosition.Top;
            DrillDownController controller = new DrillDownController();

            this.radChartView1.Controllers.Add(controller);
            this.radChartView1.Drill += new DrillEventHandler(radChartView1_Drill);
            this.radChartView1.ShowDrillNavigation = true;
            FillColors(this.radChartView1.View, KnownPalette.Warm);

            DateTimeContinuousAxis horizontalAxis = new DateTimeContinuousAxis();

            horizontalAxis.MajorStepUnit = Charting.TimeInterval.Year;
            horizontalAxis.MajorStep     = 1;
            horizontalAxis.LabelFormat   = "{0:yyyy}";
            horizontalAxis.Title         = "Year";

            LinearAxis verticalAxis = new LinearAxis();

            verticalAxis.AxisType    = AxisType.Second;
            verticalAxis.Title       = "USD";
            barSerias.HorizontalAxis = verticalAxis;

            barSerias.VerticalAxis = horizontalAxis;


            radChartView1.Series.Add(barSerias);
            this.radChartView1.LabelFormatting += new ChartViewLabelFormattingEventHandler(radChartView1_LabelFormatting);
            this.radChartView1.ShowTrackBall    = false;

            //smartLabelsController.Strategy = new FalpLabelStrategy();


            this.radChartView1.Controllers.Add(smartLabelsController);
            CartesianArea area = this.radChartView1.GetArea <CartesianArea>();

            area.ShowGrid = true;

            this.FillBarSeries(barSerias);
        }
Пример #4
0
        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;
        }
Пример #5
0
        private void InitializeChart2()
        {
            CartesianArea area = this.radChartView2.GetArea <CartesianArea>();
            CartesianGrid grid = area.GetGrid <CartesianGrid>();

            grid.ForeColor             = Color.FromArgb(235, 235, 235);
            grid.DrawVerticalStripes   = false;
            grid.DrawHorizontalStripes = true;
            grid.DrawHorizontalFills   = false;
            grid.DrawVerticalFills     = false;
            area.ShowGrid = true;

            ChartTrackballController trackball = new ChartTrackballController();

            trackball.IsFixedSize = true;
            trackball.FixedSize   = new System.Drawing.Size(150, 30);
            trackball.TextNeeded += new TextNeededEventHandler(trackball_TextNeeded);
            this.radChartView2.Controllers.Add(trackball);

            AreaSeries areaSeries = new AreaSeries();

            areaSeries.Spline         = false;
            areaSeries.CategoryMember = "Category";
            areaSeries.ValueMember    = "Value";
            areaSeries.DataSource     = model.Data2;
            areaSeries.PointSize      = new SizeF(0, 0);
            areaSeries.BorderColor    = Color.FromArgb(142, 196, 65);
            areaSeries.BackColor      = Color.FromArgb(150, Color.FromArgb(142, 196, 65));

            this.radChartView2.Series.Add(areaSeries);

            this.radChartView2.ChartElement.TitlePosition = TitlePosition.Top;
            this.radChartView2.ChartElement.TitleElement.TextAlignment = ContentAlignment.MiddleLeft;
            this.radChartView2.ChartElement.TitleElement.Margin        = new Padding(10, 10, 0, 0);
            this.radChartView2.ChartElement.TitleElement.Font          = font;
            this.radChartView2.View.Margin = new Padding(10, 0, 0, 10);

            LinearAxis axeY = radChartView2.Axes.Get <LinearAxis>(1);

            axeY.Minimum = 3000;
            axeY.Maximum = 4200;

            CategoricalAxis axeX = radChartView2.Axes.Get <CategoricalAxis>(0);

            axeX.LabelInterval       = 2;
            axeX.LabelFormat         = "{0:HH}";
            axeX.LastLabelVisibility = Charting.AxisLastLabelVisibility.Visible;
        }
Пример #6
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            ((CartesianArea)this.radChartView1.View.Area).ShowGrid = true;

            this.radDropDownList1.DataSource = chartTypes;
            this.radDropDownList2.DataSource = lineCombineModes;

            int i = 1;

            foreach (DataPointElement dpe in this.radChartView1.Series[0].Children)
            {
                dpe.IsVisible = false;
                AnimatedPropertySetting setting = new AnimatedPropertySetting();
                setting.StartValue = false;
                setting.EndValue   = true;
                setting.Property   = UIChartElement.IsVisibleProperty;
                setting.ApplyDelay = 40 + 40 * i;
                setting.NumFrames  = 2;
                setting.ApplyValue(dpe);
                i++;
            }

            i = 1;
            foreach (DataPointElement dpe in this.radChartView1.Series[1].Children)
            {
                dpe.IsVisible = false;
                AnimatedPropertySetting setting = new AnimatedPropertySetting();
                setting.StartValue = false;
                setting.EndValue   = true;
                setting.Property   = UIChartElement.IsVisibleProperty;
                setting.ApplyDelay = 60 + 60 * i;
                setting.NumFrames  = 2;
                setting.ApplyValue(dpe);
                i++;
            }

            CartesianArea area = this.radChartView1.GetArea <CartesianArea>();

            area.ShowGrid = true;
            CartesianGrid grid = area.GetGrid <CartesianGrid>();

            grid.DrawHorizontalStripes = true;
            grid.DrawVerticalStripes   = true;
        }
Пример #7
0
        public Form1()
        {
            InitializeComponent();

            this.SelectedControl = this.radChartView1;

            CartesianArea area = this.radChartView1.GetArea <CartesianArea>();

            area.ShowGrid = true;
            CartesianGrid grid = area.GetGrid <CartesianGrid>();

            grid.DrawHorizontalStripes = true;
            grid.DrawVerticalStripes   = true;

            InitializeChartAxes();

            this.SetEnabledQsfbButton(QSFButtons.ChangeTheme, false);
        }
Пример #8
0
        private void radChartView1_Initialized(object sender, EventArgs e)
        {
            CartesianArea area = this.radChartView1.GetArea <CartesianArea>();
            CartesianGrid grid = area.GetGrid <CartesianGrid>();

            grid.ForeColor             = Color.FromArgb(235, 235, 235);
            grid.DrawVerticalStripes   = false;
            grid.DrawHorizontalStripes = true;
            grid.DrawHorizontalFills   = false;
            grid.DrawVerticalFills     = false;
            area.ShowGrid = true;

            LineSeries lineSeries;

            lineSeries             = new LineSeries();
            lineSeries.BorderColor = Color.FromArgb(142, 196, 65);


            lineSeries.PointSize      = new SizeF(0, 0);
            lineSeries.CategoryMember = "Category";
            lineSeries.ValueMember    = "Value";
            lineSeries.DataSource     = m_MainClass.m_LiveDataModel.Data;
            lineSeries.BorderWidth    = 2;

            this.radChartView1.Series.Add(lineSeries);

            this.radChartView1.ChartElement.TitlePosition = TitlePosition.Top;
            this.radChartView1.ChartElement.TitleElement.TextAlignment = ContentAlignment.MiddleLeft;
            this.radChartView1.ChartElement.TitleElement.Margin        = new Padding(10, 10, 0, 0);
            this.radChartView1.View.Margin = new Padding(10, 0, 35, 0);

            LinearAxis axeY = radChartView1.Axes.Get <LinearAxis>(1);

            axeY.Minimum   = 0;
            axeY.Maximum   = 300;
            axeY.MajorStep = 30;

            CategoricalAxis axeX = radChartView1.Axes.Get <CategoricalAxis>(0);

            axeX.ClipLabels    = false;
            axeX.LabelInterval = 50;
            axeX.LabelFormat   = "{0:HH:mm:ss.f}";
        }
Пример #9
0
        public Form1()
        {
            InitializeComponent();

            this.SetChartViewData();
            this.SetupChartView();

            this.radChartView1.ShowLegend = true;
            this.radChartView1.LegendTitle = "Telemetry";
            this.radChartView1.ShowTitle = true;
            this.radChartView1.Title = "Prototype car best lap telemetry";
            this.radChartView1.ChartElement.TitlePosition = TitlePosition.Top;
            this.radChartView1.ChartElement.TitleElement.Padding = new System.Windows.Forms.Padding(this.radChartView1.View.Margin.Left, 10, 0, 0);

            CartesianArea area = this.radChartView1.GetArea<CartesianArea>();
            area.ShowGrid = true;
            CartesianGrid grid = area.GetGrid<CartesianGrid>();
            grid.DrawHorizontalStripes = true;
        }
Пример #10
0
        private void InitializeChartHeartRate()
        {
            CartesianArea area = this.radChartViewHeartRate.GetArea <CartesianArea>();
            CartesianGrid grid = area.GetGrid <CartesianGrid>();

            grid.ForeColor             = Color.FromArgb(235, 235, 235);
            grid.DrawVerticalStripes   = false;
            grid.DrawHorizontalStripes = true;
            grid.DrawHorizontalFills   = false;
            grid.DrawVerticalFills     = false;
            area.ShowGrid = true;

            LineSeries lineSeries = new LineSeries();

            lineSeries.PointSize      = new SizeF(0, 0);
            lineSeries.CategoryMember = "Time";
            lineSeries.ValueMember    = "Value";
            lineSeries.DataSource     = model.HeartRate;
            lineSeries.BorderColor    = Color.FromArgb(142, 196, 65);
            lineSeries.BorderWidth    = 2;

            this.radChartViewHeartRate.Series.Add(lineSeries);

            this.radChartViewHeartRate.ChartElement.TitlePosition = TitlePosition.Top;
            this.radChartViewHeartRate.Title = "Heart Rate";
            this.radChartViewHeartRate.ChartElement.ShowTitle = true;
            this.radChartViewHeartRate.ChartElement.TitleElement.TextAlignment = ContentAlignment.MiddleLeft;
            this.radChartViewHeartRate.ChartElement.TitleElement.Margin        = new Padding(10, 0, 0, 0);
            this.radChartViewHeartRate.ChartElement.TitleElement.Font          = font;
            this.radChartViewHeartRate.View.Margin = new Padding(10, 0, 10, 0);

            LinearAxis axeY = radChartViewHeartRate.Axes.Get <LinearAxis>(1);

            axeY.Minimum = 100;
            axeY.Maximum = 180;
            //axeY.MajorStep = 1;

            CategoricalAxis axeX = radChartViewHeartRate.Axes.Get <CategoricalAxis>(0);

            axeX.LabelInterval       = 5;
            axeX.LabelFormat         = "{0:HH:mm:ss}";
            axeX.LastLabelVisibility = Telerik.Charting.AxisLastLabelVisibility.Visible;
        }
Пример #11
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            this.radChartView1.GetArea <CartesianArea>().ShowGrid = true;

            this.radDropDownList1.DataSource = chartTypes;
            this.radDropDownList2.DataSource = lineCombineModes;

            this.radDropDownList1.SelectedValue = "Spline Area";

            CartesianArea area = this.radChartView1.GetArea <CartesianArea>();

            area.ShowGrid = true;
            CartesianGrid grid = area.GetGrid <CartesianGrid>();

            grid.DrawHorizontalStripes = true;
            grid.DrawVerticalStripes   = true;
        }
Пример #12
0
        private void InitializeChartAxes()
        {
            CartesianArea area = this.radChartView1.GetArea <CartesianArea>();

            LinearAxis horizontalAxis = new LinearAxis();

            horizontalAxis.LabelFitMode = AxisLabelFitMode.MultiLine;
            horizontalAxis.Title        = "Property Area (sq.ft.)";
            horizontalAxis.Minimum      = 450;
            horizontalAxis.Maximum      = 2550;
            horizontalAxis.MajorStep    = 150;
            area.Axes.Add(horizontalAxis);

            LinearAxis verticalAxis = new LinearAxis();

            verticalAxis.AxisType = AxisType.Second;
            verticalAxis.Title    = "Price (USD) per sq. ft.";
            verticalAxis.Minimum  = 1;
            verticalAxis.Maximum  = 9;
            area.Axes.Add(verticalAxis);
        }
Пример #13
0
        private void InitializeBarChart()
        {
            CategoricalDataPoint point;
            BarSeries            barSeries;
            CartesianArea        area = this.radChartView1.GetArea <CartesianArea>();
            CartesianGrid        grid = area.GetGrid <CartesianGrid>();

            grid.ForeColor             = Color.FromArgb(235, 235, 235);
            grid.DrawVerticalStripes   = false;
            grid.DrawHorizontalStripes = true;
            grid.DrawHorizontalFills   = false;
            grid.DrawVerticalFills     = false;
            area.ShowGrid = true;

            for (int i = 0; i < barSeriesValues.Length; i++)
            {
                barSeries = new BarSeries();
                point     = new CategoricalDataPoint(barSeriesValues[i], "May 2012");
                barSeries.DataPoints.Add(point);
                area.Series.Add(barSeries);
            }

            this.radChartView1.View.Margin = new Padding(0, 0, 30, 0);
        }
Пример #14
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            enableFormatting = true;

            CartesianArea area = this.radChartView1.GetArea <CartesianArea>();

            area.ShowGrid = true;

            CartesianGrid grid = area.GetGrid <CartesianGrid>();

            grid.DrawHorizontalStripes = true;
            grid.ForeColor             = Color.FromArgb(200, 200, 200);
            grid.BorderDashStyle       = System.Drawing.Drawing2D.DashStyle.Dot;
            grid.DrawVerticalStripes   = false;
            grid.DrawHorizontalFills   = false;
            grid.DrawVerticalFills     = false;

            DateTimeCategoricalAxis horizontalAxis = new DateTimeCategoricalAxis();

            horizontalAxis.LabelFormat        = "{0:MMM - dd}";
            horizontalAxis.LabelFitMode       = AxisLabelFitMode.Rotate;
            horizontalAxis.LabelRotationAngle = 315;
            area.Axes.Add(horizontalAxis);

            LinearAxis verticalAxis = new LinearAxis();

            verticalAxis.Minimum  = 58;
            verticalAxis.Maximum  = 70;
            verticalAxis.AxisType = Telerik.Charting.AxisType.Second;
            area.Axes.Add(verticalAxis);

            InitializeOhlcSeries();
            SetupOhlcLabels();
        }
Пример #15
0
        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
        }
        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);
        }
Пример #17
0
        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
        }
Пример #18
0
        void radChartView1_Drill(object sender, DrillEventArgs e)
        {
            CartesianSeries series = new BarSeries();

            series.ValueMember    = "Value";
            series.CategoryMember = "Date";

            DateTimeCategoricalAxis horizontalAxis = new DateTimeCategoricalAxis();
            CartesianArea           area           = e.View.GetArea <CartesianArea>();

            area.ShowGrid = true;

            CartesianGrid grid = area.GetGrid <CartesianGrid>();

            grid.DrawHorizontalStripes = true;
            grid.DrawVerticalStripes   = true;

            this.radChartView1.ShowTrackBall = false;
            switch (e.Level)
            {
            case 0:
                series.DataSource        = DrillDownViewModel.ParseDataByYear();
                radChartView1.Title      = "Revenue by Years";
                grid.DrawVerticalStripes = false;
                this.FillBarSeries(series);
                break;

            case 1:
                if (e.SelectedPoint != null)
                {
                    year = ((DrillDownDataInfo)e.SelectedPoint.DataItem).Date.Year;
                }

                series.DataSource          = DrillDownViewModel.ParseDataByMonth(year);
                radChartView1.Title        = "Revenue by Months";
                horizontalAxis.LabelFormat = "{0:MMMM}";
                horizontalAxis.Title       = "Months";
                grid.DrawVerticalStripes   = false;
                this.FillBarSeries(series);
                break;

            case 2:
                if (e.SelectedPoint != null)
                {
                    month = ((DrillDownDataInfo)e.SelectedPoint.DataItem).Date.Month;
                }

                series                        = new LineSeries();
                series.ValueMember            = "Value";
                series.CategoryMember         = "Date";
                series.DataSource             = DrillDownViewModel.ParseDataByDay(year, month);
                series.ShowLabels             = true;
                series.DrawLinesToLabels      = true;
                series.SyncLinesToLabelsColor = false;
                series.LinesToLabelsColor     = Color.Black;

                radChartView1.Title              = "Revenue by Days";
                horizontalAxis.LabelFormat       = "{0:dd}";
                horizontalAxis.Title             = "Days";
                this.radChartView1.ShowTrackBall = true;
                grid.DrawVerticalStripes         = true;
                series.ForeColor = Color.Black;
                this.SetTrackBall();
                break;
            }

            e.View.Axes.Clear();
            series.HorizontalAxis = horizontalAxis;
            e.View.Series.Clear();
            e.View.Series.Add(series);

            this.FillColors(e.View, KnownPalette.Warm);
        }
Пример #19
0
 public CustomCartesianRenderer(CartesianArea area)
     : base(area)
 {
 }