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


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

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

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


加好友 发短信
等级:四尾狐 帖子:781 积分:9870 威望:0 精华:0 注册:2008/9/1 13:47:00
如何根据各列数据生成饼形图?  发帖心情 Post By:2011/7/16 21:54:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/17 7:31:00 [只看该作者]

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(条形)

 
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("xxx").Current(nm)
next
 
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)

 回到顶部
帅哥哟,离线,有人找我吗?
易服
  3楼 | 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%


 回到顶部
帅哥哟,离线,有人找我吗?
易服
  4楼 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/17 17:12:00 [只看该作者]

这里不是有现成的例子吗:

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=11274

 


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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By: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) & "%"
..........


 回到顶部
帅哥哟,离线,有人找我吗?
易服
  7楼 | 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 & "退耕地坡度级分布"
...........


 回到顶部