2011-08-01 118 views
0

我試圖顯示訪問不同的網站隨着時間的推移,它工作正常。 但是,當我嘗試添加另一個網站後,我開始跟蹤其他網站後,圖表就會顯示它,就像我將它與其他網站一起啓動一樣。 例如,當我有兩個數組:微軟C#圖表控件顯示虛假數據

{ 
dates[] { "8/1", "8/2", "8/3" } 
visits[] { 100, 74, 96 } 
} 
{ 
dates[] { "8/1", "8/2", "8/3" } 
visits[] { 52, 86, 23 } 
} 

它工作得很好。但是,當我有兩個數組:

{ 
dates[] { "8/1", "8/2", "8/3" } 
visits[] { 100, 74, 96 } 
} 
{ 
dates[] { "8/3" } 
visits[] { 52 } 
} 

它顯示了我第二因爲它對8/1 52次訪問和不8/3

這裏是我的代碼:

public void drawChart(List<object[]> data) 
     { 
      chart1.Series.Clear(); 
      for (int i = 0; i < data.Count; i = i + 3) 
      { 
       chart1.Series.Add(data[i+2][0].ToString()); 
       chart1.Series[i/3].Points.DataBindXY(data[i], data[i+1]); 
       chart1.Series[i/3].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; 
       chart1.Series[i/3].IsValueShownAsLabel = true; 
       chart1.Series[i/3].BorderWidth = 3; 
      } 
     } 

列表包含數組,第一個數組包含日期,第二個數組包含訪問,第三個僅包含一個對象,即系列名稱。

+0

可以PLZ張貼你如何解析數據到圖表一些代碼? – SynerCoder

+0

添加...謝謝:) – Jason

回答

0

看到Microsoft Chart Controls and X-Axis time scale format

傳遞字符串作爲X值,把它們變成愚蠢的標籤,我認爲。 您需要將它們轉換爲Date以便軸能夠正確放置它們,然後使用標籤格式來顯示您想要的內容。

this.chart.ChartAreas["Default"].AxisX.LabelStyle.Format = "DD/MM"; 
0

爲什麼不直接綁定到DateTime?

IList<DateTime> listx = new List<DateTime>(); 
IList<double> listy = new List<double>(); 

//iterate and add your values to the two lists: listx and listy 

//when you're done, bind the lists to the points collection 
chart1.Series[i/3].Points.DataBindXY(listx, listy); 

希望這有助於:)