c#图表控件AxisX环绕

时间:2017-11-07 16:11:37

标签: c# datetime axis dotnetcharting

我有一个图表控件,它有一系列沿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;最大设置应解决此问题,但它不会

0 个答案:

没有答案