以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 生成的柱形图表,标示错误,哪里错了? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67460) |
||||
-- 作者:sloyy -- 发布时间:2015/4/24 17:32:00 -- 生成的柱形图表,标示错误,哪里错了? 我生成了一张柱形图,却发现2015年1月的数据标示为0, 正确应该是0.21 ,如图: 哪里错了? 代码如下: Dim Chart As WinForm.Chart \'定义一个图表变量 Dim Series As WinForm.ChartSeries \'定义一个图系变量 Chart= e.Form.Controls("Chart1") \' 引用窗口中的图表 Chart.ChartType = ChartTypeEnum.Bar \'设置图表类型 Chart.SeriesList.Clear() \'清除图表原来的图系 For n As Integer = e.Form.Controls("ComboBox1").text To e.Form.Controls("ComboBox2").text Series = Chart.SeriesList.Add() \'增加一个图系 Series.Length = 13 \'图系的数据点数等于表的行数 Series.DataLabelText = "{#YVAL}" Series.DataLabelCompass=LabelCompassEnum.North For i As Integer = 1 To 12\'指定每个数据点的位置 Series.X(i) = i \'指定水平坐标 月份 Dim r As DataRow = DataTables("qmdkye").Find("数据日期 = " & n & Format(i,"00")) If r IsNot Nothing Series.Y(i) = r("贷款逾期率") \'指定垂直坐标 Else Series.Y(i) = 0 End If Next \'设置了每个图系的标题: Series.Text =N &"年" Next \'在指定的位置显示图例: Chart.LegendVisible = True \'显示图列 Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端)
[此贴子已经被作者于2015/4/24 18:00:30编辑过]
|
||||
-- 作者:sloyy -- 发布时间:2015/4/24 17:48:00 -- 初步发现,错误出在第一个循环, 第二年的所有数据标示都为0 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2015/4/24 18:04:00 -- 没办法,这是控件bug,你索性用百分比表示,图示数据乘以100: Series.Y(i) = r("贷款逾期率") * 100 \'指定垂直坐标 |
||||
-- 作者:sloyy -- 发布时间:2015/4/24 18:16:00 -- 如果不用循环,手工启用双图系,能不能避开这个BUG? |
||||
-- 作者:sloyy -- 发布时间:2015/4/24 18:38:00 -- 试过了 双图系也不行,第二个图示还是0 |
||||
-- 作者:游 -- 发布时间:2015/4/24 19:41:00 -- 你可以用随机数测试一下,好像不是Bug |
||||
-- 作者:sloyy -- 发布时间:2015/4/24 21:13:00 -- 是bug 它把第二个循环的数字全部做了四舍五入 |