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