以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 【图表】怎么生成如图格式的多柱形图呢? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=110521) |
-- 作者:李孝春 -- 发布时间:2017/12/4 21:25:00 -- 【图表】怎么生成如图格式的多柱形图呢? 【图表】怎么生成如图格式的多柱形图呢? 假定表A有 门店名称 投入 产出 利润 年份 月份 六个字段 1店 1000 1200 200 2012 07 1店 1000 1200 200 2012 08 2店 2000 4000 2000 2012 07 2店 2000 4000 2000 2012 08 3店 3000 7000 4000 2012 07 3店 3000 7000 4000 2012 08 怎么生成如下图呢? 下面的代码只能实现单柱形图
Dim Chart As WinForm.Chart \'定义一个图表变量 Dim Series As WinForm.ChartSeries \'定义一个图系变量 Dim t As Table = Tables("门店产值") \'定义一个变量t引用数据表 Chart = e.Form.Controls("Chart2") \' 引用窗口中的图表 Chart.ChartType = ChartTypeEnum.bar
\'图表类型改为Bar(条形) Chart.SeriesList.Clear() \'清除图表原来的图系 t.filter = "门店名称 = \'永吉地板\'" For r As Integer = 0 To t.Rows.Count - 1 Series = Chart.SeriesList.Add() \'增加一个图系 Series.Text = t.rows(r)("门店名称") \'设置图系的标题 Series.Length = t.cols.Count - 2 \'设置图系的长度 For i As Integer = 2 To t.cols.count-1 Series.X(i-2) = i-2 Series.Y(i-2) = t.Rows(r)(t.cols(i).name) Chart.AxisX.SetValueLabel(i-2, t.cols(i).name) \'指定字符表示 Next Next Series.DataLabelText = "{#YVAL}" Series.TooltipText = "永吉地板{#XVAL}月, {#YVAL}元" \'Chart.AxisX.AnnoWithLabels = True \'启用字符标示 \'\'Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮 \'Chart.LegendVisible = True \'显示图列 \'Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端) |
-- 作者:有点蓝 -- 发布时间:2017/12/4 21:53:00 -- Dim g As new GroupTableBuilder("统计表1",DataTables("门店产值")) g.Groups.AddDef("月份") g.Totals.AddDef("投入") g.Totals.AddDef("产出") g.Totals.AddDef("利润") g.filter = "门店名称 = \'永吉地板\'" Dim dt As DataTable = g.Build(True) Dim Chart As WinForm.Chart \'定义一个图表变量 Dim Series As WinForm.ChartSeries \'定义一个图系变量 Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表 Chart.ChartType = ChartTypeEnum.Bar \'图表类型改为Bar(条形) Chart.SeriesList.Clear() \'清除图表原来的图系 Dim cls() As String = {"投入","产出","利润"} For Each c As String In cls Series = Chart.SeriesList.Add() \'增加一个图系 Series.Text = c \'设置图系的标题 Series.Length = 13 \'设置图系的长度 For r As Integer = 0 To 12 Series.X(r) = r Series.Y(r) = 0 Next For i As Integer = 0 To dt.dataRows.Count - 1 Series.Y(dt.dataRows(i)("月份")) = dt.dataRows(i)(c) Next Next Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮 Chart.LegendVisible = True \'显示图列 Chart.LegendCompass= CompassEnum.South
|
-- 作者:李孝春 -- 发布时间:2017/12/4 22:15:00 -- 回复:(有点蓝)Dim g As new GroupTableBuilder("统... 有点蓝老师 怎么加入下面的两行 不对应显示数据呢? Series.DataLabelText = "{#YVAL}" Series.TooltipText = "永吉地板{#XVAL}月, {#YVAL}元" 第一行只显示了利润的数据 投入 产出 不显示 第二行代码也是只显示了利润的数据 投入 产出 不显示 还得麻烦指导一下 谢谢!
[此贴子已经被作者于2017/12/4 22:17:31编辑过]
|
-- 作者:有点蓝 -- 发布时间:2017/12/4 22:27:00 -- …… For Each c As String In cls Series = Chart.SeriesList.Add() \'增加一个图系 Series.Text = c \'设置图系的标题 Series.Length = 13 \'设置图系的长度 For r As Integer = 0 To 12 Series.X(r) = r Series.Y(r) = 0 Next For i As Integer = 0 To dt.dataRows.Count - 1 Series.Y(dt.dataRows(i)("月份")) = dt.dataRows(i)(c) Next Series.TooltipText = "永吉地板 " & c & " {#XVAL}月, {#YVAL}元" Next ……
|