Pie
Pie(饼型)也是一种常用类型,Pie型非常特殊,没有X轴,只使用Y轴设置数据;一个图系表示一个扇形,而且只能包括一个值,这个值的大小决定扇形的大小。
例如对于上面的表,如果需要用Pie型来图示,代码会和我们之前的代码有很大的不同:
Dim
Chart As WinForm.Chart '定义一个图表变量这是生成的图表:
Chart有个PieInnerRadius属性(如果是第二图表,请使用PieInnerRadius2),用于设置饼图的中空比例,通过这个属性我们可以得到环形图,例如:
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.PieInnerRadius = 70
'中空比例为70%
这是生成的图表:
ChartSeries
有一个属性Offset,它可以让图系所代表的扇形偏离中心点,所偏离的距离就由该属性指定。
例如,我们稍微改一下代码:
Dim
Chart As WinForm.Chart '定义一个图表变量得到的图表为:
有的时候,可能希望能够以百分比的形式标出各数据,可以参考下面的代码:
Dim
t
As
Table = Tables("统计表1")
'定义一个变量t引用数据表
Dim
sm
As
Integer
= t.Compute("Sum(数量)")
'计算总数量
Dim
Chart
As
WinForm.Chart = e.Form.Controls("Chart1")
'定义一个图表变量
Chart.VisualEffect =
True
'加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie
'图表1类型改为Bar(条形)
Chart.SeriesList.Clear()
For
Each
r
As
Row
In
t.Rows
Dim
Series
As
WinForm.ChartSeries = Chart.SeriesList.Add()
'增加一个图系
Series.Length = 1
'一个系列只能包括一个值
Series.Text = r("产品")
&
"("
& r("数量")
&
")"
'设置图系的标题
Series.Y(0) = r("数量")
'指定值
Series.DataLabelText = r("产品")
&
"("
& Math.Round(r("数量")
* 100 / sm, 2) &
"%)"
'计算百分比
Series.DataLabelCompass = LabelCompassEnum.RadialText
'标示文本径向排列|
Series.DataLabelOffset = -8
'向内偏移8个像素
Next
Chart.LegendVisible =
True
'显示图列
Chart.LegendCompass = CompassEnum.East
'图列显示在东方(右方)
得到的图表为: