目錄:
先簡單說一下,從圖中可以看到一個 Chart 可以繪制多個 ChartArea,每個 ChartArea 都可以繪制多條 Series。ChartArea 就是就是繪圖區域,可以有多個 ChartArea 疊加在一起,Series 是畫在 ChartAarea 上的,Series 英文意思是“序列、連續”,其實就是數據線,它可以是曲線、點、柱形、條形、餅圖...可以注意該 Chart 當數據非常多的時候可以通過鼠標選擇查看區域,進一步拖拽橫縱向滾動條來縮小曲線圖查看。
Chart.ChartAreas 屬性:獲取用於存儲 ChartArea 對象的只讀 ChartAreaCollection 對象。ChartArea 對象用於繪制一個或多個圖表。
Chart.Series 屬性:獲取 SeriesCollection 對象。Series 對象存儲 DataPoint 的對象,以及數據特性。
設置MSChart控件屬性方法兩種:1)代碼中設置屬性;2)屬性表設置屬性
////////////////////ChartArea1屬性設置/////////////////////////// //設置網格的樣式 chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineColor = Color.LightGray; chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineColor = Color.LightGray; chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.IntervalOffset = 1; chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.IntervalOffset = 0; chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.Interval = 2; chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Interval = 10; chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dash; chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.DashDot; //設置坐標軸樣式 chart1.ChartAreas["ChartArea1"].AxisX.Title = "隨機數"; chart1.ChartAreas["ChartArea1"].AxisY.Title = "數值"; chart1.ChartAreas[0].AxisX.ArrowStyle = AxisArrowStyle.Lines; chart1.ChartAreas[0].AxisY.IntervalOffset = 10; chart1.ChartAreas[0].AxisY.Interval = 20; chart1.ChartAreas[0].AxisY.Minimum = -10; //啟用3D顯示 chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = false; //設置圖表背景 chart1.ChartAreas[0].BackColor = Color.FromArgb(0x87, 0xCC, 0xFF, 0xFF); chart1.ChartAreas[0].BackGradientStyle = GradientStyle.TopBottom; chart1.ChartAreas[0].ShadowColor = Color.Gainsboro; chart1.ChartAreas[0].ShadowOffset = 5; //////////////////////Series屬性設置/////////////////////////// //設置顯示類型-線型 chart1.Series["隨機數"].ChartType = SeriesChartType.Spline; //設置坐標軸Value顯示類型 chart1.Series["隨機數"].XValueType = ChartValueType.Int32; //是否顯示標簽的數值 chart1.Series["隨機數"].IsValueShownAsLabel = true; //設置標記圖案 chart1.Series["隨機數"].MarkerStyle = MarkerStyle.Circle; chart1.Series["隨機數"].MarkerSize = 8; chart1.Series["隨機數"].MarkerColor = Color.FromArgb(0x99, 0xFF, 0x00); chart1.Series["隨機數"].MarkerBorderColor = Color.Green; chart1.Series["隨機數"].MarkerBorderWidth = 2; //設置圖案顏色 chart1.Series["隨機數"].Color = Color.Green; //設置圖案的寬度 chart1.Series["隨機數"].BorderWidth = 2; chart1.Series[0].BorderDashStyle = ChartDashStyle.Dash; chart1.Series[0].BorderColor = Color.Red; chart1.Series[0].LabelAngle = 45; chart1.Series[0].LabelBackColor = Color.Aqua; chart1.Series[0].LabelBorderColor = Color.Black; //添加隨機數 Random rd = new Random(); for (int i = 1; i < 20; i++) { //chart1.Series["隨機數"].Points.AddXY(i, rd.Next(100)); chart1.Series["隨機數"].Points.AddY(rd.Next(100)); } for (int i = 0; i < chart1.Series[0].Points.Count; i++) { if (chart1.Series[0].Points[i].YValues[0] >= 67.0) chart1.Series[0].Points[i].MarkerBorderColor = Color.DeepPink; else if(chart1.Series[0].Points[i].YValues[0] >= 33.3) chart1.Series[0].Points[i].MarkerBorderColor = Color.DarkOrange; else chart1.Series[0].Points[i].MarkerBorderColor = Color.Gray; }
步驟1:設置ChartArea屬性
點擊ChartAreas(集合)后面的小按鈕進入對話框,設置對應的屬性
步驟2:設置Series屬性
點擊Series(集合)后面的小按鈕進入對話框,設置對應屬性
3. Chart 類說明
- ChartAreas:獲取用於存儲 ChartArea 對象的只讀 ChartAreaCollection 對象。
- ChartAreaCollection 類:表示 ChartArea 對象的集合。
- Count:獲取 Collection<T> 中實際包含的元素數。
- Item[Int32]:獲取或設置指定索引處的元素。
- Item[String]:獲取或設置具有指定名稱的圖表元素。
- ChartArea 類:表示圖表圖像上的圖表區域。
- AxisX:獲取或設置表示主 X 軸的 Axis 對象。
- AxisY:獲取或設置表示主 Y 軸的 Axis 對象。
- BackColor:獲取或設置 ChartArea 對象的背景色。
- BackGradientStyle:獲取或設置圖表區域的背景漸變方向,還確定是否使用漸變。
- ShadowColor:獲取或設置 ChartArea 對象的陰影顏色。
- ShadowOffset:獲取或設置 ChartArea 對象的陰影偏移量(以像素為單位)。
- Axis 類:提供管理 Chart 控件中的軸的方法和屬性。
- MajorGrid:獲取或設置用於設置軸的主要網格線屬性的 Grid 對象。
- Title:獲取或設置軸的標題。
- ArrowStyle:獲取或設置二維軸的箭頭樣式;此樣式不適用於三維圖表區域。
- Interval:獲取或設置軸的間隔。(坐標軸數據間隔)
- IntervalOffset:獲取或設置軸的間隔偏移量。(坐標軸第一個數據距離原點的間隔)
- Maximum:獲取或設置軸的最大值。
- Minimum:獲取或設置軸的最小值。
- Grid 類:提供用於管理 Axis 對象的主要和次要網格的方法和屬性。
- Interval:獲取或設置主要網格線或次要網格線之間的間隔。(相鄰兩個網格線間的間隔,int)
- IntervalType:獲取或設置主要網格線或次要網格線的間隔類型。(計算單位)
- IntervalOffset:獲取或設置網格線的偏移量。(第一個網格線偏移坐標軸的間隔,int)
- IntervalOffsetType:獲取或設置主要網格線和次要網格線的間隔偏移量類型。(計算單位)
- LineColor:獲取或設置網格線顏色。
- LineDashStyle:獲取或設置網格的線型。
- LineWidth:獲取或設置主要網格線和次要網格線的線條寬度。
- ChartAreaCollection 類:表示 ChartArea 對象的集合。
- Series:獲取 SeriesCollection 對象。
- SeriesCollection 類:表示 Series 對象的集合。
- Count:獲取 Collection<T> 中實際包含的元素數。
- Item[Int32]:獲取或設置指定索引處的元素。
- Item[String]:獲取或設置具有指定名稱的圖表元素。
- Series 類:存儲數據點和序列特性。
- ChartType:獲取或設置序列的圖表類型。
- SeriesChartType 枚舉:指定 Series 的圖表類型。
- Area:面積圖類型。
- Line:折線圖類型。
- Spline:樣條圖類型。(光滑曲線)
- Column:柱形圖類型。
- Pie:餅圖類型。
- Doughnut:圓環圖類型。
- SeriesChartType 枚舉:指定 Series 的圖表類型。
- XValueType:獲取或設置沿 X 軸繪制的值類型。
- YValueType:獲取或設置序列所存儲的數據點中的 Y 值數據類型。
- ChartValueType 枚舉:指定各種圖表屬性的值類型。
- Auto:屬性類型由圖表控件自動設置。
- Int32:Int32 值。
- DateTime:一個 DateTime 值。
- Time:[DateTime] 值的時間部分。
- ChartValueType 枚舉:指定各種圖表屬性的值類型。
- IsValueShownAsLabel:獲取或設置一個標志,該標志指示是否在標簽上顯示數據點的值。
- Points:獲取 DataPointCollection 對象。(數據表中的數據點)
- DataPointCollection 類:表示 DataPoint 對象的集合。
- Count:獲取 Collection<T> 中實際包含的元素數。
- Item:獲取或設置指定索引處的元素。(針對每一個 DataPoint 對象)
- AddXY(Double, Double):使用指定的 X 值和 Y 值將 DataPoint 對象添加到集合末尾。
///////實現將時間數據賦值到 X 軸/////// //第一步:將 X 軸數值類型設置為 Time chart1.Series[0].XValueType = ChartValueType.Time; //第二步:將 DateTime 數據轉為 double 類型 DateTime dt = DateTime.Parse("2000/8/8 12:08:01"); double d = Double.Parse(dtzh.Rows[i]["Fo"].ToString()); chart1.Series[0].Points.AddXY(dt.ToOADate(), d);
- AddY(Double):使用指定的 Y 值將 DataPoint 對象添加到集合末尾。
- Clear:從 Collection<T> 中移除所有元素。
- Insert:將元素插入 Collection<T> 的指定索引處。
- InsertXY:插入具有指定 X 值和一個或多個指定 Y 值的數據點。
- InsertY:插入具有一個或多個指定 Y 值的數據點。
- Remove:從 Collection<T> 中移除特定對象的第一個匹配項。
- RemoveAt:移除 Collection<T> 的指定索引處的元素。
- DataPoint 類:表示存儲在 DataPointCollection 類中的數據點。
- XValue:獲取或設置數據點的 X 值。
- YValues:獲取或設置數據點的 Y 值。(數組的形式,值一般是[0])
- Color:獲取或設置數據點的顏色。
- BorderColor:獲取或設置數據點的邊框顏色。
- DataPointCollection 類:表示 DataPoint 對象的集合。
- MarkerStyle:獲取或設置標記樣式。
- MarkerStyle 枚舉:獲取或設置標記樣式。
- MarkerStyle 枚舉:指定標記的樣式。
- None:不為序列或數據點顯示任何標記。
- Square:顯示正方形標記。
- Circle:顯示圓形標記。
- Diamond:顯示菱形標記。
- Triangle:顯示三角形標記。
- Cross:顯示十字形標記。
- MarkerStyle 枚舉:獲取或設置標記樣式。
- MarkerColor:獲取或設置標記顏色。(數據點)
- MarkerSize:獲取或設置標記的大小。
- MarkerBorderColor:獲取或設置標記的邊框顏色。
- MarkerBorderWidth:獲取或設置標記的邊框寬度。
- Color:獲取或設置數據點的顏色。(數據點和連接的線)
- BorderWidth:獲取或設置數據點的邊框寬度。
- BorderDashStyle:獲取或設置數據點的邊框樣式。
- BorderColor:獲取或設置數據點的邊框顏色。
- EmptyPointStyle:獲取或設置標記為空的點的繪制樣式。
- LabelBackColor:獲取或設置數據點標簽的背景色。
- LabelBorderColor:獲取或設置數據點標簽的邊框顏色。
- LabelBorderDashStyle:獲取或設置標簽的邊框樣式。
- LabelBorderWidth:獲取或設置標簽的邊框寬度。
- IsVisibleInLegend:獲取或設置一個標志,該標志指示是否在圖例中顯示項。
- LegendText:獲取或設置圖例中項的文本。
- ChartType:獲取或設置序列的圖表類型。
- SeriesCollection 類:表示 Series 對象的集合。
- Titles:存儲 Chart 控件使用的所有 Title 對象。
- TitleCollection 類:表示 Title 對象的集合。
- Count:獲取 Collection<T> 中實際包含的元素數。
- Item[Int32]:獲取或設置指定索引處的元素。
- Add(T):將對象添加到 Collection<T> 的結尾處。
- Add(String):將具有指定名稱的 Title 對象添加到集合的末尾。
- Clear:從 Collection<T> 中移除所有元素。
- ClearItems:從 Collection<T> 中移除所有元素。
- Title 類:表示整個圖表圖像的標題。
- Alignment:獲取或設置標題的對齊方式。
- BackColor:獲取或設置標題的背景色。
- Font:獲取或設置標題的字體。
- ForeColor:獲取或設置標題文本的顏色。
- ShadowColor:獲取或設置標題的陰影顏色。
- ShadowOffset:獲取或設置標題的陰影偏移量(以像素為單位)。
- Position:獲取或設置可用於獲取或設置標題位置的 ElementPosition 對象。
- Text:獲取或設置標題的文本。
- TextOrientation:獲取或設置標題中文本的方向。
- TextStyle:獲取或設置標題的文本樣式。
- TitleCollection 類:表示 Title 對象的集合。
- Legends:存儲 Chart 控件使用的所有 Legend 對象。
- LegendCollection 類:表示 Legend 對象的集合。
- Count:獲取 Collection<T> 中實際包含的元素數。
- Item[Int32]:獲取或設置指定索引處的元素。
- Item[String]:獲取或設置具有指定名稱的圖表元素。
- Legend 類:表示圖表圖像的圖例。
- Alignment:獲取或設置圖例的對齊方式。
- StringAlignment 枚舉:指定文本字符串相對於其布局矩形的對齊方式。
- Near:如果圖例停靠到頂部或底部,則 Near 位於左側;如果圖例停靠到左側或右側,則 Near 位於頂部。
- Center:總是將圖例垂直或水平居中。
- Far:如果圖例停靠到頂部或底部,則 Far 位於右側;如果圖例停靠到左側或右側,則 Far 位於底部。
- StringAlignment 枚舉:指定文本字符串相對於其布局矩形的對齊方式。
- Title:獲取或設置圖例標題的文本。
- ShadowColor:獲取或設置圖例的陰影顏色。
- ShadowOffset:獲取或設置圖例的陰影偏移量(以像素為單位)。
- Alignment:獲取或設置圖例的對齊方式。
- LegendCollection 類:表示 Legend 對象的集合。