2014-12-04 69 views
1

我正在绘制来自同一个MSChart上的CSV文件的多个系列数据。尽管两个系列的TimeString值可能不一致(一组点聚集在另一个之后),但我得到的是两个图相重叠的数据,图表上的时间戳来自加载的最后一个系列。MSChart绘制2个或更多系列的x轴时间

我想了解如何以绝对时间显示每个数据系列,因此每个系列的时间分量在比较图时相对正确。如果它们在时间上重叠,则XY图可以重叠。如果它们来自不同的时间段,那么地块应该相邻。

这是我读的CSV数据到我的DataTable

DataTable[] seriesData; 
... 
private void BindData(int pen, string fname) 
{ 
    try 
    { 
     if (System.IO.File.Exists(fname)) 
     { 
      seriesData[pen - 1] = GetDataTable(fname); 
      DataTableReader myReader = seriesData[pen - 1].CreateDataReader(); 
      chart1.Series[pen - 1].Points.DataBindXY(myReader, "TimeString", myReader, "VarValue"); 
      chart1.Series[pen - 1].ChartType = SeriesChartType.Line; 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("Exception: " + ex.Message); 
    } 
} 

回答

0

我无法证实这一点,但我没有看到你的数据。

Series S1 = chart1.Series[0]; 
Series S2 = chart1.Series[1]; 
S1.ChartType = SeriesChartType.Line; 
S2.ChartType = SeriesChartType.Line; 
S1.Color = Color.Red; 
S2.Color = Color.Green; 
S1.XValueType = ChartValueType.Time; 
S2.XValueType = ChartValueType.Time; 

for (int d = 100; d < 200; d++) 
{ 
    DateTime dt = DateTime.Now.AddMinutes(d); 
    S1.Points.AddXY(dt, 100 + R.Next(100)); 
} 
for (int d = 150; d < 300; d++) 
{ 
    DateTime dt = DateTime.Now.AddMinutes(d); 
    S2.Points.AddXY(dt, 200 + R.Next(100)); 
} 

你是如何设置XValueType

下面是简单的测试数据的示例从Random对象R其结果得出?

overlapping times