Pie

Pie(饼型)也是一种常用类型,Pie型非常特殊,没有X轴,只使用Y轴设置数据;一个图系表示一个扇形,而且只能包括一个值,这个值的大小决定扇形的大小。

例如对于上面的表,如果需要用Pie型来图示,代码会和我们之前的代码有很大的不同:

Dim Chart As WinForm.Chart '定义一个图表变量
Dim
Series As WinForm.ChartSeries '定义一个图系变量
Dim
t As Table = Tables("统计表1") '定义一个变量t引用数据表
Chart= Forms(
"窗口1").Controls("Chart1") ' 引用窗口中的图表
Chart.VisualEffect =
True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie
'图表1类型改为Bar(条形)
For
Each r As Row In t.Rows
    Series = Chart.SeriesList.Add()
'增加一个图系
    Series.Length =
1 '一个系列只能包括一个值
    Series.Text = r(
"产品") & "(" & r("数量") & ")" '设置图系的标题
    Series.Y(
0) = r("数量") '指定值
Next

Chart.LegendVisible =
True '显示图列
Chart.LegendCompass= CompassEnum.East
'图列显示在东方(右方)

这是生成的图表:

ChartSeries 有一个属性Offset,它可以让图系所代表的扇形偏离中心点,所偏离的距离就由该属性指定。
例如,我们稍微改一下代码:

Dim Chart As WinForm.Chart '定义一个图表变量
Dim
Series As WinForm.ChartSeries '定义一个图系变量
Dim
t As Table = Tables("统计表1") '定义一个变量t引用数据表
Chart= Forms(
"窗口1").Controls("Chart1") ' 引用窗口中的图表
Chart.VisualEffect =
True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie
'图表1类型改为Bar(条形)
For
Each r As Row In t.Rows
    Series = Chart.SeriesList.Add()
'增加一个图系
    Series.Length =
1 '一个系列只能包括一个值
    Series.Text = r(
"产品") & "(" & r("数量") & ")" '设置图系的标题
    Series.Y(
0) = r("数量") '指定值
   
If r("产品") = "PD05" Then '如果是产品PD05
        Series.Offset =
20 '那么图系偏离中心点20个像素。
   
End
If
Next

Chart.LegendVisible =
True '显示图列
Chart.LegendCompass= CompassEnum.East
'图列显示在东方(右方)

得到的图表为:

有的时候,可能希望能够以百分比的形式标出各数据,可以参考下面的代码:

Dim Chart As WinForm.Chart '定义一个图表变量
Dim
Series As WinForm.ChartSeries '定义一个图系变量
Dim
t As Table = Tables("统计表1") '定义一个变量t引用数据表
Dim
sm As Integer = t.Compute("Sum(数量)") '计算总数量
Chart
= Forms("窗口1").Controls("Chart1") ' 引用窗口中的图表
Chart
.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart
.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
For
Each r As Row In t.Rows
   
Series = Chart.SeriesList.Add() '增加一个图系
   
Series.Length = 1 '一个系列只能包括一个值
   
Series.Text = r("产品") & "(" & r("数量") & ")" '设置图系的标题
   
Series.Y(0) = r("数量") '指定值
   
Series.DataLabelText = Math.Round(r("数量")*100/sm,2) & "%" '计算百分比

Next

Chart
.LegendVisible = True '显示图列
Chart
.LegendCompass= CompassEnum.East '图列显示在东方(右方)

得到的图表为:

 


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