微软自带Chart控件的使用小结
1、安装:
1)如果是.Net3.5,请先安装"\图片控件 .net3.5版\MSChart.exe";
2)如果是.Net4.0及以上的,控件已自带;
3)如果是.Net2.0及以下的,此控件不能安装。
2、如果是.Net3.5的,请先在“工具箱”中添加。
3、如果调试或运行时提示出错“为 ChartImg.axd 执行子请求时出错”,修改web.Config的
为:
,如果没有这个设置,在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股价图类型。
CandlestickK 线图类型。
Range范围图类型。
SplineRange样条范围图类型。
RangeBar范围条形图类型。
RangeColumn范围柱形图类型。
Radar雷达图类型。
Polar极坐标图类型。
ErrorBar误差条形图类型。
BoxPlot盒须图类型。
Renko砖形图类型。
ThreeLineBreak新三值图类型。
Kagi卡吉图类型。
PointAndFigure点数图类型。
Funnel漏斗图类型。
Pyramid棱锥图类型。
5、demo代码
前台:
后台:
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";
}
}
}
}