微軟自帶Chart控件的使用小結
1、安裝:
1)如果是.Net3.5,請先安裝"\圖片控件 .net3.5版\MSChart.exe";
2)如果是.Net4.0及以上的,控件已自帶;
3)如果是.Net2.0及以下的,此控件不能安裝。
2、如果是.Net3.5的,請先在“工具箱”中添加。
3、如果調試或運行時提示出錯“為 ChartImg.axd 執行子請求時出錯”,修改web.Config的
<add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
為:
<add path="ChartImg.axd" verb="GET,POST,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
,如果沒有這個設置,在system.web-->httpHandlers里添加。
4、部分常用MSChart屬性列表
ChartAreas:增加多個繪圖區域,每個繪圖區域包含獨立的圖表組、數據源,用於多個圖表類型在一個繪圖區不兼容時。
AlignmentOrientation:圖表區對齊方向,定義兩個繪圖區域間的對齊方式。
AlignmentStyle:圖表區對齊類型,定義圖表間用以對其的元素。
AlignWithChartArea:參照對齊的繪圖區名稱。
InnerPlotPosition:圖表在繪圖區內的位置屬性。
Auto:是否自動對齊。
Height:圖表在繪圖區內的高度(百分比,取值在0-100)
Width:圖表在繪圖區內的寬度(百分比,取值在0-100)
X,Y:圖表在繪圖區內左上角坐標
Position:繪圖區位置屬性,同InnerPlotPosition。
Name:繪圖區名稱。
Axis:坐標軸集合
Title:坐標軸標題
TitleAlignment:坐標軸標題對齊方式
Interval:軸刻度間隔大小
IntervalOffset:軸刻度偏移量大小
MinorGrid:次要輔助線
MinorTickMark:次要刻度線
MajorGrid:主要輔助線
MajorTickMark:主要刻度線
DataSourceID:MSChart的數據源。
Legends:圖例說明。
Palette:圖表外觀定義。
Series:最重要的屬性,圖表集合,就是最終看到的餅圖、柱狀圖、線圖、點圖等構成的合;可以將多種相互兼容的類型放在一個繪圖區域內,形成復合圖。
IsValueShownAsLabel:是否顯示數據點標簽,如果為true,在圖表中顯示每一個數據值
Label:數據點標簽文本
LabelFormat:數據點標簽文本格式
LabelAngle:標簽字體角度
Name:圖表名稱
Points:數據點集合
XValueType:橫坐標軸類型
YValueType:縱坐標軸類型
XValueMember:橫坐標綁定的數據源(如果數據源為Table,則填寫橫坐標要顯示的字段名稱)
YValueMembers:縱坐標綁定的數據源(如果數據源為Table,則填寫縱坐標要顯示的字段名稱,縱坐標可以有兩個)
ChartArea:圖表所屬的繪圖區域名稱
ChartType:圖表類型(柱形、餅形、線形、點形等)
Legend:圖表使用的圖例名稱
Titles:標題集合。
width:MSChart的寬度。
height:MSChart的高度。
SeriesChartType 枚舉值對應的說明
Point 點圖類型。
FastPoint 快速點圖類型。
Bubble 氣泡圖類型。
Line 折線圖類型。
Spline 樣條圖類型。
StepLine 階梯線圖類型。
FastLine 快速掃描線圖類型。
Bar 條形圖類型。
StackedBar 堆積條形圖類型。
StackedBar100 百分比堆積條形圖類型。
Column 柱形圖類型。
StackedColumn 堆積柱形圖類型。
StackedColumn100 百分比堆積柱形圖類型。
Area 面積圖類型。
SplineArea 樣條面積圖類型。
StackedArea 堆積面積圖類型。
StackedArea100 百分比堆積面積圖類型。
Pie 餅圖類型。
Doughnut 圓環圖類型。
Stock 股價圖類型。
Candlestick K 線圖類型。
Range 范圍圖類型。
SplineRange 樣條范圍圖類型。
RangeBar 范圍條形圖類型。
RangeColumn 范圍柱形圖類型。
Radar 雷達圖類型。
Polar 極坐標圖類型。
ErrorBar 誤差條形圖類型。
BoxPlot 盒須圖類型。
Renko 磚形圖類型。
ThreeLineBreak 新三值圖類型。
Kagi 卡吉圖類型。
PointAndFigure 點數圖類型。
Funnel 漏斗圖類型。
Pyramid 棱錐圖類型。
5、demo代碼
前台:
<asp:Chart ID="Chart1" runat="server"></asp:Chart>
后台:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.DataVisualization.Charting; namespace ChartLibrary { public partial class demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Chart1.Width = 600; Chart1.Height = 500; ChartArea chartArea1 = new ChartArea("圖表區1"); Chart1.ChartAreas.Add(chartArea1); Legend legend1 = new Legend("說明"); Chart1.Legends.Add(legend1); Chart1.Legends[0].Enabled = true; Series series1 = new Series("數據1"); Chart1.Series.Add(series1); //數據 double[] yval = { 20, 60, 40, 50, 30, 30, 40, 20 }; string[] xval = { "項目1", "項目2", "項目3", "項目4", "項目5", "項目6", "項目7", "項目8" }; Chart1.Series[0].Points.DataBindXY(xval, yval); //是否啟用3D顯示 Chart1.ChartAreas[0].Area3DStyle.Enable3D = true; //顯示類型,可以是柱形(默認Column) 折線Line,Spline 餅圖Pie 條形圖Bar 等等 Chart1.Series[0].ChartType = SeriesChartType.Pie; //// Draw as 3D Cylinder Chart1.Series[0]["DrawingStyle"] = "Cylinder"; //像素點見寬度 Chart1.Series[0]["PointWidth"] = "0.8"; //是否顯示數值 Chart1.Series[0].IsValueShownAsLabel = true; //X軸數據顯示間隔 Chart1.ChartAreas[0].AxisX.Interval = 1; //直角坐標顯示, Chart1.ChartAreas[0].Area3DStyle.IsRightAngleAxes = false; //是否群集在一起 Chart1.ChartAreas[0].Area3DStyle.IsClustered = false; //轉動X軸角度 Chart1.ChartAreas[0].Area3DStyle.Inclination = 30; //轉動Y軸角度 Chart1.ChartAreas[0].Area3DStyle.Rotation = 10; foreach (Series ser in Chart1.Series) { //柱形寬度 ser["PixelPointWidth"] = "40"; //像素點深度 ser["PixelPointDepth"] = "80"; //像素點間隙深度 ser["PixelPointGapDepth"] = "10"; } } } }