0

我有一个图表控件,它沿 x 轴绘制了一系列日期。有 120 个日期,每个日期代表不同的一天。当绘制这些日期时,图表会环绕自身并将图表绘制为多条线(基本上它围绕所有 120 个日期圈起来,因为它无法将它们放入空间中)

我已将最小值设置为范围内的第一个日期,将最大值设置为范围内的最后一个日期

reportChartArea.AxisX.Minimum = this._list.First().DATE.ToOADate();
reportChartArea.AxisX.Maximum = this._list.Last().DATE.ToOADate();

我还将间隔类型设置为天

reportChartArea.AxisX.IntervalType = DateTimeIntervalType.Days;
reportChartArea.AxisX.Interval = 4;
reportChartArea.AxisX.IntervalOffset = 1;
reportChartArea.AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount;

然后我创建一个系列

Series price = new Series();
price.Font = new Font("Lucida Sans Unicode", 6f);
price.Color = Color.FromArgb(49, 116, 175);
price.XValueType = ChartValueType.DateTime;
price.YValueType = ChartValueType.Double;
price.Legend = price.Name;
price.ChartType = SeriesChartType.Line;
price.YAxisType = AxisType.Secondary;
reportChart.Legends.Add(price.Name);

最后我遍历我的列表来绘制数据

foreach (var p in this._list)
{
    DataPoint p1 = new DataPoint(p.DATE.ToOADate(), p.CurrentPrice);
    price.Points.Add(p1);
}

然后我将数据点添加到图表中

reportChart.Series.Add(price);

绘制图表,当线到达某个点(大约 35 点)时,它会自行循环并在前一个点旁边绘制下一个 35 左右,依此类推,直到它到达终点。我已将此添加到我的代码中以对其进行测试,它不会循环并且仅绘制前 35 个数据点

int i = 0;
foreach (var p in this._list)
{
    if(i<= 35)
    {
        DataPoint p1 = new DataPoint(p.DATE.ToOADate(), p.CurrentPrice);
        price.Points.Add(p1);
    }
    i++;
}

一旦点数超过这个数字,它就会自行循环,将图形变成一团糟。任何人都可以看到我要去哪里错了吗?当然,最小和最大设置应该可以解决这个问题,但它并没有

4

0 回答 0