1

一定期間 (数週間) にわたるテスト結果を示す折れ線グラフを作成しようとしています。チャート コントロールを使用したのはこれが初めてで、ループからポイントを追加すると灰色の四角形が表示され続けるようです。

このように http://imageshack.us/a/img69/4718/69sq.png

コードのどこが間違っているのかわかりません。一般的なポイントを手動で追加すると、正しく表示されます。

私が使用しているコードは次のとおりです。

    chtBreakdown.ChartAreas[0].AxisY.Minimum = 0;
    chtBreakdown.ChartAreas[0].AxisY.Maximum = 100;
    chtBreakdown.ChartAreas[0].AxisY.Interval = 10;
    chtBreakdown.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Weeks;
    chtBreakdown.ChartAreas[0].AxisX.Interval = 1;
    dtiStart.Value = DateTime.Now.AddMonths(-3);
    dtiEnd.Value = DateTime.Now;

    chtBreakdown.Series.Clear();
    DateTimeOffset minimum = dtiStart.Value;
    DateTimeOffset maximum = dtiEnd.Value;
    chtBreakdown.ChartAreas[0].AxisX.Minimum = minimum.DateTime.ToOADate();
    chtBreakdown.ChartAreas[0].AxisX.Maximum = maximum.DateTime.ToOADate();
    foreach (User u in allUsers)
    {
      List<Training> userTraining = u.TrainingList.Where(t => t.StartTime >= minimum && t.StartTime <= maximum).OrderBy(t => t.EndTime).ToList();
      if (userTraining.Count != 0)
      {
        Series series = new Series(u.DisplayName);
        series.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
        series.BorderWidth = 2;
        series.XValueType = ChartValueType.DateTime;
        foreach (Training t in userTraining) series.Points.AddXY(t.StartTime.DateTime, t.PassPercentage);
        chtBreakdown.Series.Add(series);
      }
    }

誰かが私が間違っているところを教えてもらえますか?

4

1 に答える 1

1

インスタンスは、デフォルトでSeriesはおそらくどのインスタンスにも関連付けられていません。ChartAreaこれを追加してみてください:

series.ChartArea = chtBreakdown.ChartAreas[0].Name;
于 2013-08-15T14:05:32.380 に答える