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); }
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) }); }