chart控件學習

要使用好Chart控件我們先得明確它的結構。如下圖所示:(只畫出了大概結構,更多的細節會使得圖片可視性差)

1. 一個chart可以包含多個chartArea。 chartArea是具體的座標區域。

2. 每一個chartArea主要包含X軸,Y軸,副X軸(上方),副Y軸(右方),綁定的線條,綁定的圖例。 

3. 線條可以有許多,只要將線條綁定到chartArea就可以在對應的chartArea顯示。

其樹形實體結構如下所示: 對於每個實體裏面的許多樣式屬性可以自行嘗試研究。

綜上可以對chart的結構有一個基本瞭解。接下來結合代碼進行說明

1. 線條的創建   此處用於創建4條線段。

public Series maxTemp;
public Series avgTemp;
public Series minTemp;
public Series vibration;
maxTemp = new Series("maxTemp");
avgTemp = new Series("avgTemp");
minTemp = new Series("minTemp");
vibration = new Series("vibration");

2.設置線條的樣式

//曲線的顏色
maxTemp.BorderColor = Color.Black;
maxTemp.Color = Color.Red;
avgTemp.BorderColor = Color.Black;
avgTemp.Color = Color.Green;
minTemp.BorderColor = Color.Black;
minTemp.Color = Color.Blue;
vibration.BorderColor = Color.Black;
vibration.Color = Color.Blue;

//曲線的寬度
maxTemp.BorderWidth = 2;
avgTemp.BorderWidth = 2;
avgTemp.BorderWidth = 2;
vibration.BorderWidth = 2;

//曲線的樣式   有圓形曲線,階梯形曲線,折線等等。
maxTemp.ChartType = SeriesChartType.Spline;    
avgTemp.ChartType = SeriesChartType.Spline;
minTemp.ChartType = SeriesChartType.Spline;
vibration.ChartType =SeriesChartType.Spline;

//曲線的陰影樣式    可以讓曲線更加突出有立體感。
maxTemp.ShadowOffset = 1;
avgTemp.ShadowOffset = 1;
minTemp.ShadowOffset = 1;
vibration.ShadowOffset = 1;
//標記的樣式        設置曲線中 每個數據點標記的樣式。可以在標記中顯示數據點的值,但是太多
//數據點的話將沒有可視性。
maxTemp.MarkerColor = Color.White;
maxTemp.MarkerStyle = MarkerStyle.Square;
avgTemp.MarkerColor = Color.White;
avgTemp.MarkerStyle = MarkerStyle.Square;
minTemp.MarkerColor = Color.White;
minTemp.MarkerStyle = MarkerStyle.Square;
vibration.MarkerColor = Color.White;
vibration.MarkerStyle = MarkerStyle.Square;

//設置線條的軸類型   主要設置以下方做X軸還是上方做X軸,左方做Y軸還是右方做Y軸
maxTemp.XAxisType = AxisType.Primary;
maxTemp.YAxisType = AxisType.Primary;
avgTemp.XAxisType = AxisType.Primary;
avgTemp.YAxisType = AxisType.Primary;
minTemp.XAxisType = AxisType.Primary;
minTemp.YAxisType = AxisType.Primary;
vibration.XAxisType = AxisType.Primary;
vibration.YAxisType = AxisType.Primary;          

2. ChartArea的創建和屬性設置

public ChartArea mainArea2 = new ChartArea("areaDOVS");
  //設置圖表區域 用戶可以拖動遊標   此處設置後用戶可以通過拖動遊標放大查看區域       
//設置X Y 軸座標的標題。
mainArea1.AxisX.Title = "光纖分區號/(標量)";
mainArea1.AxisY.Title = "溫度值/(攝氏度)";
mainArea2.AxisX.Title = "光纖震動位置/(m)";
mainArea2.AxisY.Title = "震動值/(a.u.)";
 
//設置網格。主網格 與主刻度對應 副網格與副刻度對應,從刻度向另一端畫一條線。如果線條中數據過多,
//產生較多的網格線會 使得整個區域過於密集,甚至爲全黑色。所以在數據點較多的情況小關閉副網格,甚至主網格。
mainArea1.AxisX.MajorGrid.Enabled = false;
mainArea1.AxisY.MajorGrid.Enabled = false;
mainArea1.AxisX.MinorTickMark.Enabled = false;
         
mainArea2.AxisX.MajorGrid.Enabled = false;
mainArea2.AxisY.MajorGrid.Enabled = false;
mainArea2.AxisX.MinorTickMark.Enabled = false;
//設置曲線橫座標值類型爲時間類型
vibration.XValueType = ChartValueType.DateTime;
//將此線條綁定到的AxisX的標籤設置時間格式。

 

 3. 創建圖例 標題

 

Legend legend = new Legend();
ElementPosition p = new ElementPosition(0, 0, 12, 10); 

4.將前面創建的對象加入到自己所屬的父實體中

chart2.ChartAreas.Add(mainArea1);  //將線條加入到chart的chartAreas集合屬性中
chart2.ChartAreas.Add(mainArea2);
series4.ChartArea = "areaDOVS";   //將線條綁定到對應ChartArea 通過chartArea的名字就可以綁定
series3.ChartArea = "areaDTS";
chart2.Series.Add(series3);       //將線條加入到chart的series集合屬性中。
chart2.Series.Add(series4);

5.示例效果。注意示例效果與前述代碼無關,前述代碼只爲了說明

 

 

 

 

 

 

 

個人分類: C#CHART控件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章