微软自带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"; } } } }