搜档网
当前位置:搜档网 › VB mschart控件的使用

VB mschart控件的使用

VB mschart控件的使用
VB mschart控件的使用

一、先看个小例子

Private Sub Form_Load()

Dim MyData(20, 1) As Double

'-----x轴坐标值-----Y轴坐标值----------

MyData(0, 0) = 0: MyData(0, 1) = 180 '本句代表了:第一点数据的X轴坐标为0,Y轴坐标为180

MyData(1, 0) = 6: MyData(1, 1) = 60

MyData(2, 0) = 8: MyData(2, 1) = 60

MyData(3, 0) = 11: MyData(3, 1) = 0

MyData(4, 0) = 16: MyData(4, 1) = 0

MyData(5, 0) = 19: MyData(5, 1) = 60

MyData(6, 0) = 25.8: MyData(6, 1) = 60

MyData(7, 0) = 28.8: MyData(7, 1) = 0

MyData(8, 0) = 31.8: MyData(8, 1) = 60

MyData(9, 0) = 40.3: MyData(9, 1) = 60

MyData(10, 0) = 43.3: MyData(10, 1) = 0

MyData(11, 0) = 93.3: MyData(11, 1) = 0

MyData(12, 0) = 96.3: MyData(12, 1) = 60

MyData(13, 0) = 99.3: MyData(13, 1) = 0

MyData(14, 0) = 105.3: MyData(14, 1) = 0

MyData(15, 0) = 135.3: MyData(15, 1) = 0

MyData(16, 0) = 144.3: MyData(16, 1) = 180

MyData(17, 0) = 148.8: MyData(17, 1) = 270

MyData(18, 0) = 405.03: MyData(18, 1) = 270

MyData(19, 0) = 409.53: MyData(19, 1) = 180

MyData(20, 0) = 564.17: MyData(20, 1) = 180

'波形图外观设置

With MSChart1

.TitleText = "速度m/min"

' '设置图线的外观

.Plot.SeriesCollection(1).Pen.Width = 30

.Plot.SeriesCollection(1).Pen.Style = VtPenStyleSolid

' '设置XY轴

.Plot.Axis(VtChAxisIdX).ValueScale.Auto = False

.Plot.Axis(VtChAxisIdY).ValueScale.Auto = False

'// 设置最大值

.Plot.Axis(VtChAxisIdX).ValueScale.Maximum = 600 '设置横轴标注最大值

.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 300 '设置纵轴标注最大值

'// 设置最小值

.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0

.Plot.Axis(VtChAxisIdX).ValueScale.Minimum = 0

'//

.Plot.Axis(VtChAxisIdX).ValueScale.MajorDivision = 6 'X轴主要网格数量

.Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 6 'Y轴主要网格数量

.Plot.Axis(VtChAxisIdX).ValueScale.MinorDivision = 0 'X轴次要网格数量

.Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 0 'Y轴次要网格数量

.Plot.Axis(VtChAxisIdX).AxisGrid.MajorPen.Style = VtPenStyleDotted

.Plot.Axis(VtChAxisIdY).AxisGrid.MajorPen.Style = VtPenStyleDotted

MSChart1.Plot.AutoLayout = False

MSChart1.Plot.UniformAxis = False

MSChart1.chartType = VtChChartType2dXY '设置图形为二维散点图

MSChart1.ChartData = MyData '数据

End With

End Sub

二、mschart控件属性介绍

1.RowCount属性设置作图数据的行数。2.ColumnCount属性设置作图数据的列数。

3.TitleText属性设置图题。

4.RowLabelCount属性设置行标的个数。

5.RowLabel属性设置行标。6.ColumnLabelCount属性设置列标的个数。

7.ColumnLabel属性设置列标。

8.Row属性设置当前行。

9.Column属性设置当前列。

10.AutoIncrement属性如果数据是连续存放的,将AutoIncrement属性设为True,可以10 . 不用随时设置当前行和当前列,向图表控件提供数据时可以连续行。

11.ShowLagend属性设置为True时可以显示图例。

图表控件的类型

VtChChartType3dBar 0 3维条形图

VtChChartType2dBar 1 2维条形图

VtChChartType3dLine 2 3维折线图

VtChChartType2dLine 3 2维折线图

VtChChartType3dArea 4 3维域型图

VtChChartType2dArea 5 2维域型图

VtChChartType3dStep 6 3维阶梯图

VtChChartType2dStep 7 2维阶梯图

VtChChartType3dCombination 8 3维联合图

VtChChartType2dCombination 9 2维联合图

VtChChartType2dPie 14 2维饼形图

VtChChartType2dXY 16 2维坐标图

4 图表控件的数据

只有图表控件取得数据才有可能显示数据。图表控件的数据是存放在内置的数据网格内。图表控件数据网格取得数据的方法有:

1.使用Data属性

图表数据可以保存在图表控件的Data属性中。Data属性只能存储数字型的数据,而不能保存文本。在对Data属性赋值前,必须先设置RowCount属性和ColumnCount属性来提供数据的行数和列数,系统根据行数和列数安排Data的大小。

在向Data属性赋值时,还需要指明当前行和当前列。例如,

MSChart1.Column = 5

MSChart1.Data = XYZ

是将XYZ赋予Data的第3行第5列。

如果数据是连续存放的,并将AutoIncrement属性设为True,可以不用随时设置当前行和当前列。例如,

MSChart1.Data = X(1)

MSChart1.Data = X(2)

MSChart1.Data = X(3)

2.使用ChartData属性

ChartData属性既可以存放数字型数据,也可以存放文本型数据。例如,

Dim vntX(1 To 4) As V ariant

vntX(1) = “产量”

vntX(2) = 200

vntX(3) = 300

vntX(4) = 400

MSChart1.ChartData = X

“产量”将标示在所绘制图形的X轴上。

3.使用SetData方法

格式是:

MSChart1.DataGrid.SetData 行,列,数值,nullFlag

“数值”为双精度。nullFlag指明数据点是否为空。

本章所开发的绘制图表应用程序使用SetData方法向图表对象添加数据。

4.图题、行标和列标

对图题、行标示和列标示的赋值分两种情况:

(1)使用Data属性和SetData方法

?图题的赋值使用TitleText属性。

?行标示或列标示的赋值先设置当前行或当前列,然后使用RowLabel属性或ColumnLabel 属性。例如,

MSChart1.Row = 1

MSChart1.RowLabel = “A”

(2)使用ChartData属性

假定用图表控件表示一个2维数据,作图时使用MSChart1.ChartData = vntX。现在我们看一看vntX是如何形成的。

Dim vntX(1 To 3, 1 To 4) As Variant

vntX(1,1) = “产品质量逐年变化表”图题放在vnt(1,1)

vntX(1,2) = ”1级”列标放在第1行

vntX(1,3) = ”2级”

vntX(1,4) = ”3级”

vntX(2,1) = “1999年”行标放在第1列

vntX(2,2) = 100 1级品数量

vntX(2,3) = 200 2级品数量

vntX(2,4) = 300 3级品数量

vntX(3,1) = “2000年”行标放在第1列

vntX(3,2) = 300 1级品数量

vntX(3,3) = 200 2级品数量

vntX(3,4) = 100

三、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的高度。

常用事件:

Series1.Points.DataBind()

绑定数据点集合,如果要在一个MSChart控件的一个绘图区(ChartArea)内添加多个不同数据源的图表,就用这个主动绑定数据集合的方法。可以将表中指定字段的值绑定到指定的坐标轴上。

MSChart1.DataBind()

相关主题