我有一个图表控件,它有一系列沿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++;
}
一旦点数超过这个数字,它就会自行循环,将图形变成一团糟。有人能看到我在哪里错了吗?肯定是min&amp;最大设置应解决此问题,但它不会