Foxtable(狐表)用户栏目专家坐堂 → [求助] 关于图表


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

主题:[求助] 关于图表

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


加好友 发短信
等级:幼狐 帖子:139 积分:1055 威望:0 精华:0 注册:2013/12/5 21:34:00
[求助] 关于图表  发帖心情 Post By:2014/1/22 8:47:00 [只看该作者]

使用双图表时,图表需要变换不同的数据展现,由于X轴的标签是用Chart.AxisX.SetValueLabel写入的。每次赋值前无论怎样Clear,都是在前面的文字上继续覆盖写,造成字迹模糊(见附件样图),哪位知道如何每个循环进入后完全清除以前的图表内容。
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20140122083703.jpg
图片点击可在新窗口打开查看

主要的代码是:
            Dim sps As List(of String) = DataTables("chart_values").GetValues("ScorePart","[bankCode] = '" & MainCode & "' And [ScorePart] Is Not NULL")
            Dim fs As String =  "[BankCode] = '" & MainCode & "' And [Year] = '" & crtYear & "' And [Quarter] = '" & crtQuarter & "' And [RoleCode] = '" & crtRole & "'"
            For Each sp As String In sps  'A/B表
                Dim Chart As WinForm.Chart 
                Dim Series As WinForm.ChartSeries 
                Chart = e.Form.Controls("Chart" & sp) 
                'Chart.VisualEffect = True
                Chart.ChartType = ChartTypeEnum.Bar
                Chart.ChartType2 = ChartTypeEnum.XYPlot
                Chart.SeriesList.Clear() 
                Chart.SeriesList2.Clear()
                Dim drl As List(of DataRow)
                drl = DataTables("chart_values").Select(fs & " And [ScorePart] = '" & sp & "'","LossRate DESC")
                If drl.Count > 0 Then
                    Series = Chart.SeriesList.Add() 
                    Series.Length = drl.Count
                    For i As Integer = 0 To Series.Length - 1
                        Series.X(i) = i
                        Series.Y(i) = Math.Round(drl(i)("LossRate") * 100,2)
                    Next
                    Series.DataLabelText = "{#YVAL}" & "%"
                    Series.Text = "分项失分率"
                    Chart.LegendCompass= CompassEnum.North
                    Chart.AxisX.AnnoRotation = - 30
                    Chart.AxisX.AnnoWithLabels = True
                    
                    Series = Chart.SeriesList2.Add() 
                    Series.Length = drl.Count
                    For i As Integer = 0 To Series.Length - 1
                        Series.X(i) = i
                        Series.Y(i) = Math.Round(drl(i)("Perception") * 100,2)
                        'Chart.AxisX.SetValueLabel(i,drl(i)("Name"))
                    Next
                    Chart.LegendVisible = True '显示图列
                    Series.DataLabelText = "{#YVAL}" & "%"
                    Series.Text = "累积百分比"
                    For i As Integer = 0 To Series.Length - 1
                        Chart.AxisX.SetValueLabel(i,drl(i)("Name"))
                    Next
                End If
            Next


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/22 8:49:00 [只看该作者]

做个例子发上来看看.

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


加好友 发短信
等级:幼狐 帖子:139 积分:1055 威望:0 精华:0 注册:2013/12/5 21:34:00
  发帖心情 Post By:2014/1/22 8:57:00 [只看该作者]

另外:
 图表的纵向值Series.Y(i) = Math.Round(drl(i)("LossRate") * 100,2)现在是数值,想在乘以100后的数字后面加上一个“%”加不了( & “%”),如果和X轴一样使用Chart.AxisY.SetValueLabel(i,Math.Round(drl(i)("LossRate") * 100,2) & "%") 也显示不了,这是什么问题呢?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/22 9:09:00 [只看该作者]

你现在不是显示百分比号了吗?  计算过程中当然不可以添加字符串.

具体请上例子.

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


加好友 发短信
等级:幼狐 帖子:139 积分:1055 威望:0 精华:0 注册:2013/12/5 21:34:00
  发帖心情 Post By:2014/1/22 9:11:00 [只看该作者]

是两边两个Y轴上的刻度显示数字加不上%,现在都是整数吗,例如:160 应为 160%

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/22 9:13:00 [只看该作者]

刻度只能用数值.

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


加好友 发短信
等级:幼狐 帖子:139 积分:1055 威望:0 精华:0 注册:2013/12/5 21:34:00
  发帖心情 Post By:2014/1/22 9:14:00 [只看该作者]

主要是下面标签(汉字)的重写,一步一步跟踪了图表形成过程,生成新图表时,是在上一次的图表上重写的,是不是那部分数据已经被丢弃了,就显示在那里,无法清除?

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


加好友 发短信
等级:幼狐 帖子:139 积分:1055 威望:0 精华:0 注册:2013/12/5 21:34:00
  发帖心情 Post By:2014/1/22 9:15:00 [只看该作者]

下面模糊的文字实际每次是写了一遍,但是上一次的图还是保留的,所以叠加模糊了。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/22 9:16:00 [只看该作者]

请上例子.

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


加好友 发短信
等级:幼狐 帖子:139 积分:1055 威望:0 精华:0 注册:2013/12/5 21:34:00
  发帖心情 Post By:2014/1/22 9:19:00 [只看该作者]

版主没看明白我的例子吗? 简单点说:
1、Y轴上那些整数(20,40,。。。,160)如何加上百分号。
2、如何清除X轴上的上一次留下的文字(或是清空彻底清空上一次的图表信息)。

 回到顶部
总数 20 1 2 下一页