java绘制图表控件_画图控件 Chart Control -Java架构师必看

.NET3.5中中推出了图表控件,可以同时支持Web和WinForm两种方式,由于平时很少使用,一直网络

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

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

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

安装好后,我们就可以使用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 

"

;

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中。

21世纪开运网的紫微斗数星座在线排盘系统就是用这个控件画的,好东西不敢独享哟。

本文由来源 21aspnet,由 system_mush 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值