Esempio n. 1
0
        public InrixCumulativeFreqChart(List <GraphLine> lines, TMCCollection tmcCollection, int binsize, double maxX,
                                        double minX)
        {
            CreateReliabilityTable();


            var extendedDirection = string.Empty;

            //Set the chart properties
            ChartFactory.SetImageProperties(chart);

            chart.ImageStorageMode    = ImageStorageMode.UseImageLocation;
            chart.BorderlineColor     = Color.Black;
            chart.BorderlineWidth     = 2;
            chart.BorderlineDashStyle = ChartDashStyle.Solid;
            //Set the chart title
            chart.Titles.Add("Cumulative Frequency Chart");
            chart.Titles.Add("");

            chart.Titles[1].Font = new Font(chart.Titles[0].Font, FontStyle.Bold);

            var chartArea = new ChartArea();

            chartArea.Name = "ChartArea1";


            var chartLegend = new Legend();

            chartLegend.Name    = "MainLegend";
            chartLegend.Docking = Docking.Left;
            chart.Legends.Add(chartLegend);


            chartArea.AxisX.Title    = "Travel Time (Minutes)";
            chartArea.AxisX.Interval = 2;
            if (maxX > 0)
            {
                chartArea.AxisX.Maximum = maxX;
            }
            chartArea.AxisX.Minimum = 0;
            if (minX > 0)
            {
                chartArea.AxisX.Minimum = minX;
            }
            //   chartArea.AxisX.MajorTickMark.Enabled = true;
            chartArea.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None;


            chartArea.AxisY.Title = "Cumulative Frequency";
            //chartArea.AxisY.IntervalAutoMode = IntervalAutoMode.FixedCount;
            chartArea.AxisY.Interval = 25;
            chartArea.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dot;
            chartArea.AxisY.Maximum = 100;
            chartArea.AxisY.Minimum = 0;


            chart.ChartAreas.Add(chartArea);

            var i = 0;

            foreach (var line in lines)
            {
                i++;
                var series = new Series();
                series.IsVisibleInLegend = true;
                series.ChartType         = SeriesChartType.Spline;
                series.Color             = line.LineColor;
                series.BorderWidth       = line.LineWidth;
                //series.MarkerSize = line.LineWidth;
                series.BorderDashStyle = line.LineStyle;
                series.Name            = @"#" + line.LineNumber + ": " + line.StartDay.ToShortDateString() + " - " +
                                         line.EndDay.ToShortDateString() + " from " +
                                         line.StartHour + " to " + line.EndHour;
                series.XValueType = ChartValueType.Int32;

                var hasSeries = false;

                foreach (var s in chart.Series)
                {
                    if (s.Name == series.Name)
                    {
                        hasSeries = true;
                    }
                }

                if (!hasSeries)
                {
                    chart.Series.Add(series);
                }


                AddDataToCFChart(line, tmcCollection, binsize, series.Name, line.LineNumber);
            }
        }
Esempio n. 2
0
        private void AddDataToCFChart(GraphLine line, TMCCollection tmccollection, int binsize, string seriesname,
                                      int rangeID)
        {
            //DataPointComparer comparer = new DataPointComparer();
            //TextWriter tw = new StreamWriter(@"c:\array.txt");

            tmccollection.RankedTravelTimes.Clear();
            tmccollection.BadTMCs.Clear();

            tmccollection.CalculateTravelTimes(line.StartDay, line.EndDay, line.StartHour, line.EndHour,
                                               line.Confidence, line.DayTypes, binsize, ref InrixReliabilityDT, rangeID);


            if ((tmccollection.BadTMCs.Count > 0) & (chart.Titles.Count < 3))
            {
                var badTMCtitle = new Title();
                badTMCtitle.Text      = "One or more links are missing data.";
                badTMCtitle.ForeColor = Color.Red;
                badTMCtitle.IsDockedInsideChartArea = true;
                badTMCtitle.Docking = Docking.Bottom;
                chart.Titles.Add(badTMCtitle);


                //chart.Titles.Add("One or more TMC have no data.");
                //chart.Titles[2].ForeColor = Color.Red;
                //chart.Titles[2].IsDockedInsideChartArea = true;
                //chart.Titles[2].Docking = Docking.Bottom;
            }


            foreach (var pair in tmccollection.RankedTravelTimes)
            {
                chart.Series[seriesname].Points.AddXY(Math.Round(pair.Value, 2), pair.Key);
            }

            //if (pair.Value >= x)
            //{
            //    x = pair.Value;
            //}
            //else
            //{
            //    int w = 1;
            //}

            //if (pair.Key >= y)
            //{
            //    y = pair.Key;
            //}
            //else
            //{
            //    int w = 1;
            //}
            //foreach (DataPoint point in chart.Series[seriesname].Points)
            //{
            //    if (point.YValues.Count() > 1)
            //    {
            //        foreach (double d in point.YValues)
            //        {
            //            tw.WriteLine(point.XValue.ToString() + "," + d);
            //            tw.Flush();
            //        }
            //    }
            //}
        }