启用双图表

下表的是每一种产品的销售数量和金额:

首先按照常规方法,用下面的代码来图示该表:

Dim Chart As WinForm.Chart '定义一个图表变量
Dim
Series As WinForm.ChartSeries '定义一个图系变量
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.VisualEffect =
True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Bar
'图表类型该为Bar(条形)
Chart.DataSource =
"统计表1" '设置绑定表
Chart.SeriesList.Clear()
'清除图表原来的图系
Series = Chart.SeriesList.Add()
'增加第一个图系
Series.Text =
"数量"
Series.X.DataField =
"产品" 'X轴绑定到产品列
Series.Y.DataField =
"数量" 'Y轴绑定到数量列
Series = Chart.SeriesList.Add()
'增加第二个图系
Series.Text =
"金额"
Series.X.DataField =
"产品" 'X轴绑定到产品列
Series.Y.DataField =
"金额" 'Y轴绑定到数量列
Chart.LegendVisible =
True '显示图列
Chart.LegendCompass= CompassEnum.South
'图列显示在南方(底端)

生成的图表为:

可以看到,由于金额和数量的数值范围差距太大,上述的图表不能明显看出每种产品的销售数量差别。
为了改变这种效果,我们将代码稍微修改一下:

Dim Chart As WinForm.Chart '定义一个图表变量
Dim
Series As WinForm.ChartSeries '定义一个图系变量
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.VisualEffect =
True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Bar
'图表1类型该为Bar(条形)
Chart.ChartType2 = ChartTypeEnum.XYPlot
'图表2类型该为线形
Chart.DataSource =
"统计表1" '设置绑定表
Chart.SeriesList.Clear()
'清除图表原来的图系
Series = Chart.SeriesList.Add()
'给图表1增加一个图系
Series.Text =
"数量"
Series.X.DataField =
"产品" 'X轴绑定到产品列
Series.Y.DataField =
"数量" 'Y轴绑定到数量列
Chart.SeriesList2.Clear() '清除图表原来的图系
Series = Chart.SeriesList2.Add()
'给图表2增加一个图系
Series.Text =
"金额"
Series.X.DataField =
"产品" 'X轴绑定到产品列
Series.Y.DataField =
"金额" 'Y轴绑定到数量列
Chart.LegendVisible =
True '显示图列
Chart.LegendCompass= CompassEnum.South
'图列显示在南方(底端)
Chart.AxisY.Text =
"数量"
Chart.AxisY2.Text =
"金额"

生成的图表为:

最关键的变动是我们将下面的一行:

Series = Chart.SeriesList.Add() '增加第二个图系

改成了:

Series = Chart.SeriesList2.Add() '给图表2增加一个图系

为什么多了一个数字2会造成如此大差别呢?
实际上每一个Chart都有两个图表,他们的图系集合分别是SeriesList和SeriesList2,所以上述的改动实际上就是将金额图系显示在第二个图表中。
两组图表共用X轴,而他们的Y轴是独立的,分别是AxisY和AxisY2。

由于有两个图表,所以分别指定每个图表的类型:

Chart.ChartType = ChartTypeEnum.Bar '图表1类型该为Bar(条形)
Chart.ChartType2 = ChartTypeEnum.XYPlot
'图表2类型该为线形

同样因为有两个Y轴,我们需要明确指定每个Y轴的标题,这样才能知道每个图表图示的是那一列的数据:

Chart.AxisY.Text = "数量"
Chart.AxisY2.Text =
"金额"

同时采用两个图表的情况极为少见,本来不打算讲述,但是客户总会有“不正常”的要求,大家了解一下也不错。


本页地址:http://www.foxtable.com/webhelp/topics/0971.htm