图表显示X轴的错误日期

时间:2014-02-25 15:08:59

标签: c# datetime charts msdn

我正在从csv文件中读取日期/时间和数据,并将其存储在折线图中。我的日期/时间字符串是1-1-2014 21:55:4218-02-2014 00:00:00,这实际上是第一个条目,我有几个小时的数据。

首先我将chartArea X轴lablestyle设置为正确的格式:"d-M-yyyy HH:mm:ss"

然后我使用与上面相同的格式将我的实际日期字符串解析为DateTime格式:d-M-yyyy HH:mm:ss。并将数据添加到图表中。

enter image description here

我确保你的日期是正确的: enter image description here

我的代码:

  

private void button2_Click_1(对象发件人,EventArgs e)           {               串行;               char [] delimiters = {';',',','|' };

        chart1.Series["Series1"].XValueType = ChartValueType.Time;

        chart1.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "d-M-yyyy HH:mm:ss";


        chart1.Series["Series1"].Points.Clear();


        using (System.IO.StreamReader sr = new System.IO.StreamReader(filename))
        {

            while (!sr.EndOfStream)
            {
                line = sr.ReadLine();
                DateTime newDateTime = new DateTime();

                string[] part = line.Split(delimiters);

                Console.WriteLine(part[0]);

                newDateTime = DateTime.ParseExact(
                    part[0],
                    "d-M-yyyy HH:mm:ss", 
                    CultureInfo.InvariantCulture
                    );

                chart1.Series["Series1"].Points.AddXY(newDateTime, part[5]);

            }

        }
        chart1.Refresh();
    }

1 个答案:

答案 0 :(得分:2)

问题:您已将X-Axis的自定义格式设置为d-M-yyyy HH:mm:ss,但您只是提供了datetime而未对其进行格式化。

替换它:

chart1.Series["Series1"].Points.AddXY(newDateTime, part[5]);

有了这个:

chart1.Series["Series1"].Points.AddXY(
    newDateTime.ToString("d-M-yyyy HH:mm:ss"), part[5]);