C#图表 - 重复数据

时间:2014-05-06 14:22:37

标签: c# charts data-visualization

我有以下数据(来自数据库):

enter image description here

这些存储在存储在列表中的对象中:

用于创建图表系列我创建了以下功能:

public void CreateSeries(DateTime seriesTime)
{
    while (true)
    {
        if (seriesTime.Date > _stopDate.Date) return;
        foreach (var data in _datalist)
        {
            var currentData = (Email)data;
            String xLabel;
            switch (_timeType)
            {
                case DateUtils.TimeType.Weeks:
                    xLabel = seriesTime.Date.ToString("dd");
                    break;
                case DateUtils.TimeType.Months:
                    xLabel = seriesTime.Date.ToString("MM");
                    break;
                case DateUtils.TimeType.Years:
                    xLabel = seriesTime.Date.ToString("yyyy");
                    break;
                default:
                    xLabel = seriesTime.Date.ToString("dd");
                    break;
            }
            AddData(currentData, xLabel);
        }

        if (DateConverter.GetDaysBetween(seriesTime, _stopDate) >= 0)
        {
            seriesTime = AppendDays(seriesTime);
            continue;
        }
        break;
    }
}

protected DateTime AppendDays(DateTime initialDateTime)
{
    switch (_timeType)
    {
        case DateUtils.TimeType.Weeks:
            initialDateTime = initialDateTime.AddDays(7);
            break;
        case DateUtils.TimeType.Months:
            initialDateTime = initialDateTime.AddMonths(1);
            break;
        case DateUtils.TimeType.Years:
            initialDateTime =  initialDateTime.AddYears(1);
            break;
        default:
            initialDateTime = initialDateTime.AddDays(1);
            break;
    }
    return initialDateTime;
}

所有这些都没有任何问题。

然后当添加该系列时,我在Form类中使用以下循环:

List<Series> chart = ((EmailModel)_controller.GetFactory().GetModel("Email")).GetEmailChart(from, to, current_timetype);
test_chart.Series.Clear();
foreach (Series s in chart)
{
    test_chart.Series.Add(s);
}

产生以下图表:

enter image description here

如果你仔细观察,你会发现它重复了7次数据。

我只是不知道问题所在。

谁能告诉我我做错了什么?

请告诉我,如果您需要更多信息或代码,我会经常回来查看并更新我的问题。

1 个答案:

答案 0 :(得分:0)

正如我所看到的那样,你重复了7次7列。 你必须添加1个系列。 尝试:test chart.Series.Add(s);

没有foreach!