2014-11-04 121 views
0

更改圖表中的顏色時出現問題。以下代碼:更改某些圖表點的顏色

chart1.Series["Test"].Color = Color.Red; 
int start = array1.Length; 
for (int i = 0; i < chart1.Series["Test"].Points.Count; i++) 
{ 
     if (i >= start) 
      chart1.Series["Test"].Points[i].Color = Color.Green; 
     chart1.Series["Test"].Points.AddXY(x_axis[i], y_axis[i]); 

} 

chart1.Series["Test"].Points.DataBindXY(x_axis, y_axis); 
chart1.Series["Test"].ChartType = SeriesChartType.Spline; 

案例:我有兩個數組 - 一個用於x軸,一個用於y軸。假設它們的長度爲32,我有另一個長度爲12的數組(不重要)。現在我想讓圖形在第12點之後改變顏色。我怎樣才能做到這一點?上面的代碼不起作用。該圖保持一種顏色。

+0

如何在你的循環中使用'我 Fratyx 2014-11-04 12:07:20

+0

對不起 - 編輯 – uzi42tmp 2014-11-04 12:09:49

回答

0

我不知道你的系列有多少點在執行循環時,它們來自哪裏,但是通過DataBindXY方法刪除了所有以前的數據點,並且新的綁定數據點是以自動顏色創建的(據我瞭解DataBind的工作)

也許你應該嘗試循環DataBindXY後的數據點和「後色」點。

0

解決!我必須循環:

  for (int i = 0; i < array1.Length; i++) 
       { 
        chart1.Series["Test"].Points[i].Color = Color.Blue; 

       } 

圖表必須先綁定。

1

通過在綁定數據後對每個數據點重複循環,您可以更改某些數據點的顏色。

Points pts = (Microsoft.Office.Interop.Excel.Points)series.Points(Type.Missing); 
foreach (Point pt in pts) { if(yourcondition) { 
    pt.Border.Color = (int)XlRgbColor.rgbDarkOrange; 
    pt.MarkerBackgroundColor = (int)XlRgbColor.rgbDarkOrange; 
    pt.MarkerForegroundColor = (int)XlRgbColor.rgbDarkOrange; 
    } 
} 
相關問題