Foxtable(狐表)用户栏目专家坐堂 → 如何根据各列数据生成饼形图?


  共有11921人关注过本帖树形打印复制链接

主题:如何根据各列数据生成饼形图?

帅哥哟,离线,有人找我吗?
易服
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2011/7/17 14:56:00 [显示全部帖子]


此主题相关图片如下:2011-7-16 10-41-34.png
按此在新窗口浏览图片

Dim g As New GroupTableBuilder("分组统计", DataTables("总览"))
g.Groups.AddDef("乡名")
g.Totals.AddDef("退耕地")

g.Totals.AddDef("平坡退耕","平坡")
g.Totals.AddDef("退耕斜坡","缓坡")
g.Totals.AddDef("斜坡退耕","斜坡")

g.Totals.AddDef("陡坡退耕","陡坡")
g.Build()

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("分组统计") '定义一个变量t引用数据表
Chart= Forms("构成分析").Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)

Dim nms() As String = {"平坡","缓坡","斜坡","陡坡"}
For Each nm  As String In nms
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.Text = nm
    Series.Y(0) = Tables("分组统计").Current(nm)
    Series.DataLabelText = "{#YVAL}" & "亩" 

    Series.DataLabelForeColor = Color.Red

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

 

希望显示:253.6亩占32.51%


 回到顶部
帅哥哟,离线,有人找我吗?
易服
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2011/7/17 17:06:00 [显示全部帖子]

根据各列数据生成饼形图(3楼)不知怎么变通成下面效果

Series.DataLabelText =" {#YVAL}" & "亩" & "占" &  Math.Round(r("设计面积")*100/sm,2) & "%"


图片点击可在新窗口打开查看此主题相关图片如下:2011-7-17 16-58-10.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2011-7-17 17:09:56编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
易服
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2011/7/18 15:14:00 [显示全部帖子]

以下是引用hhbb在2011-7-17 17:44:00的发言:
.......
  Series.Text = nm
    Dim r As Row = Tables("分组统计").Current
    Dim sm As Double=r("平坡")+r("缓坡")+r("斜坡")+r("陡坡")
    Series.Y(0) = r(nm)
    Series.DataLabelText =" {#YVAL}" & "亩 占" &  Math.Round(r(nm)*100/sm,2) & "%"
..........

谢谢!成功了

.........

 Series.Text = nm
    Dim r As Row = Tables("分组统计").Current
    Dim sm As Double=r("平坡")+r("缓坡")+r("斜坡")+r("陡坡")
    Series.Y(0) = r(nm)
    Series.DataLabelText =" {#YVAL}" & "亩 占" &  Math.Round(r(nm)*100/sm,2) & "%"
    Series.DataLabelForeColor = Color.Red 'White '白字
    Chart.HeaderText="" & cmb.Value & "退耕地坡度级分布"
...........


 回到顶部