對C#Chart控制項使用整理

來源:互聯網
上載者:User

前一篇部落格 C#char控制項的使用心得 簡述一個使用chart控制項的例子此處詳細整理一下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;          
 
            vibration.IsValueShownAsLabel = true;    //此屬性將資料點的值作為標籤。
 

 2. ChartArea的建立和屬性設定 

 
public ChartArea mainArea1 = new ChartArea("areaDTS");  
public ChartArea mainArea2 = new ChartArea("areaDOVS");
 

 
  //設定圖表區域 使用者可以拖動遊標   此處設定後使用者可以通過拖動遊標放大查看地區       
 
   //設定圖表區域 使用者可以拖動遊標            mainArea1.CursorX.IsUserEnabled = true;            mainArea1.CursorY.IsUserEnabled = true;            mainArea2.CursorX.IsUserEnabled = true;            mainArea2.CursorY.IsUserEnabled = true;
            //設定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的標籤設定時間格式。
 
 
            mainArea1.AxisX.LabelStyle.Format = "MM-dd HH:mm";     
            //設定主刻度標記和副刻度標記 一般只有主刻度標記才有對應標籤值。            mainArea1.AxisX.MinorTickMark.Enabled = true ;            mainArea1.AxisX.MajorTickMark.Enabled = true;


 
 
 3. 建立圖例 標題 

  Legend legend = new Legend();
 ElementPosition p = new ElementPosition(0, 0, 12, 10); 
 
  chart.Legends[0].Position = p;   //每建立一個對象都會存放在chart的集合屬性中可以通過數組的形式隨機訪問。
 

 
 
  Title title = new Title("chart使用方法");  chart.Titles.Add(title);
 
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#使用心得講述給線條添加資料點的方法。

 
 
 
 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.