图示多列
前面的例子都是图示一个数据列,这次复杂一点,我们来图示下个表中的所有数据:
方法一
采用数据绑定的方式。
新建一个窗口,在窗口中分别插入一个图表和一个按钮,将按钮的Click事件代码设置为:
Dim
Chart
As WinForm.Chart
'定义一个图表变量
Dim Series As
WinForm.ChartSeries '定义一个图系变量
Dim t As
Table =
Tables("统计表1")
'定义一个变量t引用数据表
Chart = e.Form.Controls("Chart1")
' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar
'图表类型改为Bar(条形)
Chart.DataSource = "统计表1"
'设置绑定表
Chart.SeriesList.Clear() '清除图表原来的图系
For Each
c As Col
in t.Cols
If
c.Name <> "产品"
Then
Series = Chart.SeriesList.Add()
'增加一个图系
Series.Text = c.Name
'设置图系的标题
Series.X.DataField =
"产品"
'X轴绑定到产品列
Series.Y.DataField = c.Name
'设置Y轴的绑定列
End
If
Next
Chart.VisualEffect = True
'加上这一行,让你的图表更漂亮
Chart.LegendVisible = True
'显示图列
Chart.LegendCompass= CompassEnum.South
'图列显示在南方(底端)
生成的图表:
上面的代码接触到几点新的知识,首先通过下面的代码设置了新的图表类型:
Chart.ChartType = ChartTypeEnum.Bar
其次设置了每个图系的标题:
Series.Text = c.Name
在有多个图系的时候,最好设置每一个图系的标题,图系的标题显示在图例中,用于告诉用户该图系显示的是什么数据。
最后通过下面的代码,在指定的位置显示图例:
Chart.LegendVisible =
True
'显示图列
Chart.LegendCompass= CompassEnum.South
'图列显示在南方(底端)
不需要去深究上述新接触的属性,你只需要了解这些属性的作用,在后面的章节中,我们会详细介绍每一种属性。
方法二
直接编码生成:
Dim
Chart
As WinForm.Chart
'定义一个图表变量
Dim Series As
WinForm.ChartSeries '定义一个图系变量
Dim t As
Table =
Tables("统计表1")
'定义一个变量t引用数据表
Chart = e.Form.Controls("Chart1")
' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar
'图表类型改为Bar(条形)
Chart.SeriesList.Clear() '清除图表原来的图系
For Each
c As Col
in t.Cols
If c.Name <>
"产品"
Then
Series = Chart.SeriesList.Add()
'增加一个图系
Series.Text = c.Name
'设置图系的标题
Series.Length = t.Rows.Count
'设置图系的长度
For r
As
Integer =
0
To t.Rows.Count -
1
Series.X(r) =
r
Series.Y(r) =
t.Rows(r)(c.Name)
Next
End
If
Next
For r As
Integer =
0
to t.Rows.Count -
1
Chart.AxisX.SetValueLabel(r, t.Rows(r)("产品"))
'指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True
'启用字符标示
Chart.VisualEffect = True
'加上这一行,让你的图表更漂亮
Chart.LegendVisible = True
'显示图列
Chart.LegendCompass= CompassEnum.South
'图列显示在南方(底端)
本页地址:http://www.foxtable.com/webhelp/topics/0970.htm