zoukankan      html  css  js  c++  java
  • 初试 ASP.NET Chart Control

    .NET3.5中中推出了图表控件,可以同时支持Web和WinForm两种方式,由于平时很少使用,一直没有玩玩,闲来无事,简单研究了下,感觉功能真的很强大,基本上可以满足各种图表的应用,感觉这么好用的东西才研究,真是有些落伍啊,哈哈,想必很多人已经早已玩过,这里帮大家复习下,高手绕过。

    安装MSChart

    由于是和.NET3.5一起推出来的,所以只能在最新的开发环境中使用,需要.Net 3.5 Sp1和VS 2008的开发环境。

    控件下载地址: Microsoft .NET Framework 3.5 的 Microsoft 图表控件(Microsoft Chart Controls for Microsoft .NET Framework 3.5)

    微软提供的Demo:http://code.msdn.microsoft.com/mschart

    按照上面的地址,下载安装就可以了。

    使用MSChart

    安装好后,我们就可以使用MSChart了。

    1.主要属性:

    Annotations--图形注解集合,ChartAreas--图表区域集合,Legends--图例集合,Series--图表序列集合(即图表数据对象集合),Titles--图标的标题集合。

    (1)Annotations:是一个对图形的一些注解对象的集合,所谓注解对象,类似于对某个点的详细或者批注的说明。一个图形上可以拥有多个注解对象,可以添加十多种图形样式的注解对象,包括常见的箭头、云朵、矩行、图片等等注解符号,通过各个注解对象的属性,可以方便的设置注解对象的放置位置、呈现的颜色、大小、文字内容样式等常见的属性。

    (2)ChartAreas:是一个图表的绘图区,比如在一幅图中显示多个绘图。图表控件并不限制你添加多少个绘图区域,你可以根据你的需要进行添加。对于每一个绘图区域,你可以设置各自的属性,如:X,Y轴属性、背景等。

    (3)Legends:是一个图例的集合,即标注图形中各个线条或颜色的含义,同样,一个图片也可以包含多个图例说明。

    (4)Series:是表数据对象集合,应该说是MSChart关键部分。即是实际的绘图数据区域,实际呈现的图形形状,由此集合中的每一个图表来构成的,可以往集合里面添加多个图表,每一个图表可以有自己的绘制形状、样式、独立的数据等。

    (5)Titles:图标的标题集合,不难理解,就是图表的标题配置,同样可以添加多个标题。

    其他属性:

    AlignmentOrientation:图表区对齐方向,定义两个绘图区域间的对齐方式。

    AlignmentStyle:图表区对齐类型,定义图表间用以对其的元素。

    AlignWithChartArea:参照对齐的绘图区名称。

    InnerPlotPosition:图表在绘图区内的位置属性。

    Auto:是否自动对齐。

    Height:图表在绘图区内的高度(百分比,取值在0-100)

    Width:图表在绘图区内的宽度(百分比,取值在0-100)

    X,Y:图表在绘图区内左上角坐标

    Position:绘图区位置属性,同InnerPlotPosition。

    Name:绘图区名称。

    Axis:坐标轴集合

    TitleAlignment:坐标轴标题对齐方式

    Interval:轴刻度间隔大小

    IntervalOffset:轴刻度偏移量大小

    MinorGrid:次要辅助线

    MinorTickMark:次要刻度线

    MajorGrid:主要辅助线

    MajorTickMark:主要刻度线

    DataSourceID:MSChart的数据源。

    Palette:图表外观定义。

    IsValueShownAsLabel:是否显示数据点标签,如果为true,在图表中显示每一个数据值

    Label:数据点标签文本

    LabelFormat:数据点标签文本格式

    LabelAngle:标签字体角度

    Name:图表名称

    Points:数据点集合

    XValueType:横坐标轴类型

    YValueType:纵坐标轴类型

    XValueMember:横坐标绑定的数据源(如果数据源为Table,则填写横坐标要显示的字段名称)

    YValueMembers:纵坐标绑定的数据源(如果数据源为Table,则填写纵坐标要显示的字段名称,纵坐标可以有两个)

    ChartType:图表类型(柱形、饼形、线形、点形等)

    width:MSChart的宽度。

    height:MSChart的高度。

    2.数据绑定方式

    MSChart提供了多种绑定数据的方式:

    数组绑定:

                double [] yval = { 2,6,4,5,3};
                
    string [] xval = { "Peter""Andrew""Julie""Mary""Dave"};
                Chart1.Series[
    "Series 1"].Points.DataBindXY(xval,yval);

    DataReader绑定:

    代码
                string fileNameString = this.MapPath(".");
                fileNameString 
    += "..\\..\\..\\..\\data\\chartdata.mdb";
                
    string myConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileNameString;
                
    string mySelectQuery="SELECT Name, Sales FROM REPS WHERE RegionID < 3;";
                OleDbConnection myConnection 
    = new OleDbConnection(myConnectionString);
                OleDbCommand myCommand 
    = new OleDbCommand(mySelectQuery, myConnection);
                myCommand.Connection.Open();
                OleDbDataReader myReader 
    = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
                Chart1.Series[
    "Default"].Points.DataBindXY(myReader, "Name", myReader, "Sales");
                myReader.Close();
                myConnection.Close();

    DataTable绑定:

    代码
    string fileNameString = this.MapPath(".");
                fileNameString 
    += "..\\..\\..\\..\\data\\chartdata.mdb";
                
    string myConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileNameString;
                
    string mySelectQuery="SELECT Name, Sales FROM REPS;";    
                OleDbConnection myConnection 
    = new OleDbConnection(myConnectionString);
                OleDbCommand myCommand 
    = new OleDbCommand(mySelectQuery, myConnection);    
                myCommand.Connection.Open();
                OleDbDataReader myReader 
    = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
                Chart1.DataBindTable(myReader, 
    "Name");
                myReader.Close();
                myConnection.Close();

    Excel绑定:

    代码
    string fileNameString = this.MapPath(".");
                fileNameString 
    += "..\\..\\..\\..\\data\\ExcelData.xls";
                
    string sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 
                    fileNameString 
    + ";Extended Properties=\"Excel 8.0;HDR=YES\"";
                OleDbConnection myConnection 
    = new OleDbConnection( sConn );
                myConnection.Open();
                OleDbCommand myCommand 
    = new OleDbCommand( "Select * From [data1$A1:E25]", myConnection );
                OleDbDataReader myReader 
    = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
                Chart1.DataBindTable(myReader, 
    "HOUR");
                myReader.Close();
                myConnection.Close();
                
    foreach(Series ser in Chart1.Series)
                {
                    ser.ShadowOffset 
    = 1;
                    ser.BorderWidth 
    = 3;
                    ser.ChartType 
    = SeriesChartType.Line;
                }        

    还有其他形式的数据绑定,大家可以下载微软的DEMO研究下。

    美中不足的是,MSChart只能使用在.NET3.5中,2.0中大家可以看看这个:

    http://www.cnblogs.com/gaoweipeng/archive/2009/04/18/1438821.html

  • 相关阅读:
    linux sysfs (2)
    微软——助您启动云的力量网络虚拟盛会
    Windows Azure入门教学系列 全面更新啦!
    与Advanced Telemetry创始人兼 CTO, Tom Naylor的访谈
    Windows Azure AppFabric概述
    Windows Azure Extra Small Instances Public Beta版本发布
    DataMarket 一月内容更新
    和Steve, Wade 一起学习如何使用Windows Azure Startup Tasks
    现实世界的Windows Azure:与eCraft的 Nicklas Andersson(CTO),Peter Löfgren(项目经理)以及Jörgen Westerling(CCO)的访谈
    正确使用Windows Azure 中的VM Role
  • 原文地址:https://www.cnblogs.com/gaoweipeng/p/1704879.html
Copyright © 2011-2022 走看看