public void OnLineChart(object obj)
        {
            LineSeriesCollection.Clear();
            Series ds = new Series();

            ds.ChartType       = SeriesChartType.Line;
            ds.BorderDashStyle = ChartDashStyle.Solid;
            ds.MarkerStyle     = MarkerStyle.Diamond;
            ds.MarkerSize      = 8;
            ds.BorderWidth     = 2;
            ds.Name            = "Sine";
            for (int i = 0; i < 70; i++)
            {
                double x = i / 5.0;
                double y = 1.1 * Math.Sin(x);
                ds.Points.AddXY(x, y);
            }
            LineSeriesCollection.Add(ds);

            ds                 = new Series();
            ds.ChartType       = SeriesChartType.Line;
            ds.BorderDashStyle = ChartDashStyle.Dash;
            ds.MarkerStyle     = MarkerStyle.Circle;
            ds.MarkerSize      = 8;
            ds.BorderWidth     = 2;
            ds.Name            = "Cosine";
            for (int i = 0; i < 70; i++)
            {
                double x = i / 5.0;
                double y = 1.1 * Math.Cos(x);
                ds.Points.AddXY(x, y);
            }
            LineSeriesCollection.Add(ds);
        }
Exemple #2
0
        private void SetGraph()
        {
            ReadTestData();
            ReadGradingSystemData();
            SeriesCollection.Clear();

            LineSeriesCollection.Clear();
            DateTimes.Clear();

            if (SelectedSubject == null)
            {
                return;
            }
            if (SelectedTestType == null)
            {
                return;
            }
            if (SelectedGradingPeriod == null)
            {
                return;
            }


            //var selectedSubject = AssociatedPerson.Subjects.Where(x => x.Name == SelectedSubject.Name);
            LineSeries           dummyLineSeries = new LineSeries();
            ChartValues <double> chartValues     = new ChartValues <double>();

            foreach (var test in SelectedSubject.Tests.Where(x => x.TestType.Name == SelectedTestType.Name && x.GradingPeriod.Name == SelectedGradingPeriod.Name))
            {
                chartValues.Add(test.Percentage);
                DateTimes.Add(test.TestDate.ToString(CultureInfo.InvariantCulture));
                if (chartValues.Count() > 4)
                {
                    GraphWidth = chartValues.Count() * 150;
                }
            }

            dummyLineSeries.Values = chartValues;
            //dummyLineSeries.LineSmoothness = 0;

            LineSeriesCollection.Add(dummyLineSeries);

            foreach (var s in LineSeriesCollection)
            {
                SeriesCollection.Add(s);
            }
        }
        /// <summary>
        /// 最近k个任务的效率折线图
        /// </summary>
        private void GetLineSeriesData()
        {
            LineSeriesCollection.Clear();
            LineXLabels.Clear();
            List <double>         values           = new List <double>();
            List <TaskEfficiency> taskEfficiencies = tts.GetTaskEfficiencies(DateTime.Now, 5);

            for (int i = 0; i < taskEfficiencies.Count && i < 8; i++)
            {
                LineXLabels.Add(taskEfficiencies[i].Name);
                values.Add(Math.Round(taskEfficiencies[i].Efficiency, 2));
            }

            LineSeriesCollection.Add(new LineSeries
            {
                Title      = "Efficiency",
                DataLabels = false,
                Values     = new ChartValues <double>(values)
            });
        }