2014-12-04 4 views
1

동일한 MSChart에서 CSV 파일의 여러 데이터 계열을 플로팅합니다. 두 시리즈의 TimeString 값이 일치하지 않을 수도 있지만 (한 그룹의 포인트가 다른 그룹 뒤에 모여 있음), 두 시리즈의 데이터를 겹쳐서 표시하고 마지막 시리즈의 차트에 타임 스탬프가로드됩니다.MSChart 두 개 이상의 시리즈를 플로팅 할 때의 x 축 시간

절대 시간으로 각 데이터 계열을 표시하는 방법을 알고 싶으므로 각 계열의 시간 구성 요소는 플롯을 비교할 때 상대적으로 정확합니다. 시간이 겹치면 XY 플롯이 겹칠 수 있습니다. 별도의 시간대에있는 경우 플롯이 인접해야합니다. 내가이 확신 할 수 없습니다

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

내 DataTables에 CSV 데이터를 읽을 수 있지만 난 당신의 데이터가 표시되지 않는 방법

이입니다.

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