WinForm Chart控制元件使用記錄(由於製作餅裝,柱狀,折線圖)
阿新 • • 發佈:2019-02-10
由於公司的winform專案需要用到Chart圖表,抽空研究了一下,特地發上來給大家做個參考,就目前而言用到的屬性說明都做了註釋;
主要用到Chart控制元件圖表區域的屬性有五個屬性
Annotations 批註集合(我沒怎麼用到,但是配置的話會在圖示區域出現一些可以備註的東西吧)
ChartAreas 圖表區屬性;主要設定圖示資料的背景,比如3D或者隱藏還是顯示橫縱軸交叉線,分塊顏色顯示等
Lengends 圖表圖例集合 主要設定圖表邊說明的一些東西,這次專案沒什麼用到,但是覺得這個基本沒啥用,有什麼說明一般都另外新增的,用不到自帶的屬性
Series 圖表序列屬性,chart設定中基本大多數的設定都在這裡了,用來設定資料的一下外觀,資料型別(餅圖,折線圖,樹狀圖等等)
Title 圖表標題集合,用來設定圖表的標題
使用之前要引用這個
using System.Windows.Forms.DataVisualization.Charting;
//這是新增的兩組資料
List<int> txData2 = new List<int>() { 2011, 2012, 2013, 2014, 2015, 2016 };
List<int> tyData2 = new List<int>() { 9, 6, 7, 4, 5, 4 };
List<int> txData3 = new List<int>() { 2012 };
List<int > tyData3 = new List<int>() { 7 };
Chart ct= new Chart();
//若為new一個Chart,需同時Add其Title,Series,ChartAreas等屬性
//若是直接拖入控制元件則只需在控制元件屬性中自己調整就好
//標題
ct.Titles.Add("我的歷年合同均價(元/兆千瓦時)");
//背景
ct.ChartAreas.Add(new ChartArea() { Name = "ca1" }); //背景框
ct.ChartAreas[0].Axes[0].MajorGrid.Enabled =false; //X軸上網格
ct.ChartAreas[0].Axes[1].MajorGrid.Enabled = false; //y軸上網格
ct.ChartAreas[0].Axes[0].MajorGrid.LineDashStyle = ChartDashStyle.Dash; //網格型別 短橫線
ct.ChartAreas[0].Axes[0].MajorGrid.LineColor = Color.Gray;
ct.ChartAreas[0].Axes[0].MajorTickMark.Enabled =false; // x軸上突出的小點
ct.ChartAreas[0].Axes[1].MajorTickMark.Enabled = false; //
ct.ChartAreas[0].Axes[1].IsInterlaced = true; //顯示交錯帶
ct.ChartAreas[0].Axes[0].LabelStyle.Format = "#年"; //設定X軸顯示樣式
ct.ChartAreas[0].Axes[1].MajorGrid.LineDashStyle = ChartDashStyle.Dash; //網格型別 短橫線
ct.ChartAreas[0].Axes[1].MajorGrid.LineColor = Color.Gray;
ct.ChartAreas[0].Axes[1].MajorGrid.LineWidth = 3;
//圖表資料區,有多個重疊則迴圈新增
ct.Series.Add(new Series()); //新增一個圖表序列
// ct.Series[0].XValueType = ChartValueType.String; //設定X軸上的值型別
ct.Series[0].Label = "#VAL"; //設定顯示X Y的值
ct.Series[0].ToolTip = "#VALX年\r#VAL"; //滑鼠移動到對應點顯示數值
ct.Series[0].ChartArea = "ca1"; //設定圖表背景框
ct.Series[0].ChartType = SeriesChartType.Line; //圖型別(折線)
ct.Series[0].Points.DataBindXY(txData2, tyData2); //新增資料
//折線段配置
ct.Series[0].Color = Color.Red; //線條顏色
ct.Series[0].BorderWidth = 3; //線條粗細
ct.Series[0].MarkerBorderColor =Color.Red ; //標記點邊框顏色
ct.Series[0].MarkerBorderWidth=3; //標記點邊框大小
ct.Series[0].MarkerColor =Color.Red ; //標記點中心顏色
ct.Series[0].MarkerSize = 5; //標記點大小
ct.Series[0].MarkerStyle=MarkerStyle.Circle; //標記點型別
ct.Series.Add(new Series()); //新增一個圖表序列
ct.Series[1].Label = "#VAL"; //設定顯示X Y的值
ct.Series[1].ToolTip = "#VALX年\r#VAL"; //滑鼠移動到對應點顯示數值
ct.Series[1].ChartType = SeriesChartType.Line; //圖型別(折線)
ct.Series[1].Points.DataBindXY(txData3, tyData3); //新增資料
//折線段配置
ct.Series[1].Color = Color.Black; //線條顏色
ct.Series[1].BorderWidth = 3; //線條粗細
ct.Series[1].MarkerBorderColor = Color.Black; //標記點邊框顏色
ct.Series[1].MarkerBorderWidth = 3; //標記點邊框大小
ct.Series[1].MarkerColor = Color.Black; //標記點中心顏色
ct.Series[1].MarkerSize = 5; //標記點大小
ct.Series[1].MarkerStyle = MarkerStyle.Circle; //標記點型別
//另外
//餅圖說明設定,這用來設定餅圖每一塊的資訊顯示在什麼地方
ct.Series[0]["PieLabelStyle"] = "Outside";//將文字移到外側
ct.Series[0]["PieLineColor"] = "Black";//繪製黑色的連線。
//柱狀圖其他設定
ct.Series[0]["DrawingStyle"] = "Emboss"; //設定柱狀平面形狀
ct.Series[0]["PointWidth"] = "0.5"; //設定柱狀大小
示例圖
執行示例,我用的是折線圖