Chart用法详解
實際的開發過程中chart是可以自己使用gdi來自己畫的,但是處理特殊情況可能還是不如系統自帶的控件。花了一天的時間研究了一下chart。把一些基本的功能算是研究明白了,主要是折線的顯示,用于數據分析,增加參考線,超警戒線區分顯示,離散點/點線連接基本滿足需要了。
上硬菜(想用的可以修改一下使用,勿噴):
Chart主要屬性:
ChartArea:在容器內創建多個Chart表
Series:設置多組數據的顯示(比如一個Chart里面可以出現多條折線)
Title:設置Chart的標題屬性
Legends:設置每組數據的標簽屬性
效果圖:
?
建立一個Form窗體,在Series屬性里面增加三個Series
//創建數據
private DataTable CreateDataTable(){DataTable dt=new?DataTable();dt.Columns.Add("date");dt.Columns.Add("Volume1");dt.Columns.Add("Volume2");dt.Columns.Add("Volume3");DataRow dr;dr=dt.NewRow();dr["date"]="Jans";dr["Volume1"]=10000;dr["Volume2"]=4101;dr["Volume3"]=101;dt.Rows.Add(dr);dr=dt.NewRow();dr["date"]="Feb";dr["Volume1"]=20000;dr["Volume2"]=4101;dr["Volume3"]=1101;dt.Rows.Add(dr);dr=dt.NewRow();dr["date"]="Mar";dr["Volume1"]=10000;dr["Volume2"]=7101;dr["Volume3"]=2101;dt.Rows.Add(dr);dr=dt.NewRow();dr["date"]="Apr";dr["Volume1"]=20000;dr["Volume2"]=6101;dr["Volume3"]=3101;dt.Rows.Add(dr);dr=dt.NewRow();dr["date"]="May";dr["Volume1"]=10000;dr["Volume2"]=7101;dr["Volume3"]=5101;dt.Rows.Add(dr);dr=dt.NewRow();dr["date"]="Jun";dr["Volume1"]=20000;dr["Volume2"]=8101;dr["Volume3"]=1101;dt.Rows.Add(dr);return dt; }?
private void Form1_Load(object sender,EventArgs e) {DataTable dt=new DataTable ();dt=CreateDataTable ();//設置Chart的數據源chart1.DataSource=dt;//設置圖標Y軸的對應項chart1.Series[0].YValueMembers="Volume1";chart1.Series[1].YValueMembers="Volume2";chart1.Series[2].YValueMembers="Volume3";//設置X軸的對應項chart1.Series[1].XValueMember="date";//綁定數據chart1.DataBind();//設置網格的顏色chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineColor=Color.LightGreen;chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineColor=Color.LightBlue;//繪制警戒線StripLine stripLine=new StripLine();stripLine.Interval=0;stripLine.IntervalOffset=18000.0;stripLine.StripWidth=1;stripLine.BackColor=Color.Red;stripLine.BorderDashStyle=ChartDashStyle.Dash;stripLine.Text="警戒線標識";chart1.ChartAreas["ChartArea1"].AxisY.StripLines.Add(stripLine);#region 先設置為散點法顯示(超出警戒線的點顯示為紅色,如果散點顯示則使用這種判斷方式)// foreach(DataPoint point in chart1.Serier[0].Points)//{// if(point.YValues[0]>15000)// point.Color=Color.Red;//}#endregion#region 先設置為折線顯示(然后設置折線拐點的大小與Style)//設置線條的粗細chart1.Series[0].BorderWidth=2;//標記顯示點的顏色chart1.Series[0].MarkerBorderColor=Color.Blue;//設置點的邊框粗細chart1.Series[0].MarkerBorderWidth=2;//設置點的中心顏色chart1.Series[0].MarkerColor=Color.White;//設置點的大小chart1.Series[0].MarkerSize=8;//設置點的類型chart1.Series[0].MarkerStyle=MarkerStyle.Circle;//將超限的點修改為紅色區分顯示foreach(DataPoint point in chart1.Series[0].Points){//鼠標懸停顯示數據point.ToolTip=point.YValues[0].ToString();if(point.YValues[0]>18000)point.MarkerBorderColor=Color.Red;}#endregion}?
總結
- 上一篇: 山景BP1048使用记录
- 下一篇: XCVU13P FPGA开发板