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

  • 相关阅读:
    C# 串口通信总结
    配置文件的读写
    配置文件入门
    锁机制与原子操作 <第四篇>
    线程池 异步I/O线程 <第三篇>
    线程池之ThreadPool类与辅助线程
    这一篇sigmoid和softmax的比较,讲的不错
    今天看到的关于深度学习的一篇文章,可以好好学习下
    git各种命令 & git merge和git rebase的区别
    ORA-19815,ORA-19809 :limit exceeded for recovery files
  • 原文地址:https://www.cnblogs.com/gaoweipeng/p/1704879.html
Copyright © 2011-2022 走看看