Foxtable(狐表)用户栏目专家坐堂 → [求助]关于图表生成的数据源


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

主题:[求助]关于图表生成的数据源

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


加好友 发短信
等级:幼狐 帖子:125 积分:797 威望:0 精华:0 注册:2017/5/26 11:11:00
  发帖心情 Post By:2017/6/14 18:23:00 [只看该作者]

如果坐标叠加,各自纵坐标,就不会吧起伏抹平了。
[此贴子已经被作者于2017/6/20 21:53:55编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/14 22:03:00 [只看该作者]

Dim dic1 As new SortedDictionary(Of Date, Double)
Dim dic2 As new SortedDictionary(Of Date, Double)
For Each r As Row In e.Form.controls("Table数据").Table.Rows
    If r.IsNull("date") = False Then
        If dic1.ContainsKey(r("date")) = False Then
            dic1.add(r("date"), r("value"))
        End If
        dic2.add(r("date"), 0)
    End If
Next
For Each r As Row In e.Form.controls("Table1").Table.Rows
    If r.IsNull("date") = False Then
        If dic1.ContainsKey(r("date")) = False Then
            dic1.add(r("date"), 0)
        End If
        If dic2.ContainsKey(r("date")) = False Then
            dic2.add(r("date"), r("value"))
        Else
            dic2(r("date")) = r("value")
        End If
    End If
Next

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.SeriesList2.Clear
Chart.AxisX.ClearValueLabel

Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = dic1.Count '设置图系的长度
Dim i As Integer = 0
For Each key As Date In dic1.keys
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = dic1(key) '指定垂直坐标
    Chart.AxisX.SetValueLabel(i, format(key, "yyyy-MM-dd")) '指定字符表示
    i += 1
Next


Series = Chart.SeriesList2.Add() '增加一个图系
Series.Length = dic2.Count '设置图系的长度
i = 0
For Each key As Date In dic2.keys
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = dic2(key) '指定垂直坐标
    Chart.AxisX.SetValueLabel(i, format(key, "yyyy-MM-dd")) '指定字符表示
    i += 1
Next

Chart.AxisX.AnnoRotation = -45
Chart.AxisX.AnnoWithLabels = True '启用字符标示

 

http://www.foxtable.com/webhelp/scr/0971.htm

 


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


加好友 发短信
等级:幼狐 帖子:125 积分:797 威望:0 精华:0 注册:2017/5/26 11:11:00
  发帖心情 Post By:2017/6/21 15:09:00 [只看该作者]

用了两个图系,出现日期纵坐标 叠加现象,不知何故?
[此贴子已经被作者于2017/6/21 17:57:42编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/21 15:19:00 [只看该作者]

Dim dic1 As new SortedDictionary(Of Date, Double)
Dim dic2 As new SortedDictionary(Of Date, Double)
For Each r As Row In e.Form.controls("Table数据").Table.Rows
    If r.IsNull("date") = False Then
        If dic1.ContainsKey(r("date")) = False Then
            dic1.add(r("date"), r("value"))
            dic2.add(r("date"), 0)
        End If

    End If
Next
For Each r As Row In e.Form.controls("Table1").Table.Rows
    If r.IsNull("date") = False Then
        If dic1.ContainsKey(r("date")) = False Then
            dic1.add(r("date"), 0)
        End If
        If dic2.ContainsKey(r("date")) = False Then
            dic2.add(r("date"), r("value"))
        Else
            dic2(r("date")) = r("value")
        End If
    End If
Next

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.SeriesList2.Clear
Chart.AxisX.ClearValueLabel

Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = dic1.Count '设置图系的长度
Dim i As Integer = 0
For Each key As Date In dic1.keys
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = dic1(key) '指定垂直坐标
    Chart.AxisX.SetValueLabel(i, format(key, "yyyy-MM-dd")) '指定字符表示
    i += 1
Next

Chart.AxisX.ClearValueLabel
Series = Chart.SeriesList2.Add() '增加一个图系
Series.Length = dic2.Count '设置图系的长度
i = 0
For Each key As Date In dic2.keys
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = dic2(key) '指定垂直坐标
    Chart.AxisX.SetValueLabel(i, format(key, "yyyy-MM-dd")) '指定字符表示
    i += 1
Next

Chart.AxisX.AnnoRotation = -45
Chart.AxisX.AnnoWithLabels = True '启用字符标示

 


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


加好友 发短信
等级:幼狐 帖子:125 积分:797 威望:0 精华:0 注册:2017/5/26 11:11:00
  发帖心情 Post By:2017/6/21 17:49:00 [只看该作者]

 

 

加了     dic2.add(r("date"), 0)  后就会出现很多 0 值,导致锯齿状曲线

[此贴子已经被作者于2017/6/22 12:42:22编辑过]

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


加好友 发短信
等级:幼狐 帖子:125 积分:797 威望:0 精华:0 注册:2017/5/26 11:11:00
  发帖心情 Post By:2017/6/21 17:57:00 [只看该作者]

把 dic2.add(r("date"), 0) 注释掉就好了。但是出现新情况

Chart.AxisX.ClearValueLabel 的原因吗?
 

[此贴子已经被作者于2017/6/22 12:42:13编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/21 18:27:00 [只看该作者]

第二条曲线,那一天没有数据自然赋值为0,不然你希望怎么做?


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


加好友 发短信
等级:幼狐 帖子:125 积分:797 威望:0 精华:0 注册:2017/5/26 11:11:00
  发帖心情 Post By:2017/6/21 21:40:00 [只看该作者]

以下是引用有点色在2017/6/21 18:27:00的发言:

第二条曲线,那一天没有数据自然赋值为0,不然你希望怎么做?

不是指值,而是横坐标没了?


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/21 22:02:00 [只看该作者]

必须用34楼的代码,不然横坐标无法匹配。

 

36楼的问题,你可以去掉代码 Chart.AxisX.ClearValueLabel


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


加好友 发短信
等级:幼狐 帖子:125 积分:797 威望:0 精华:0 注册:2017/5/26 11:11:00
  发帖心情 Post By:2017/6/22 10:42:00 [只看该作者]

以下是引用有点色在2017/6/21 22:02:00的发言:

必须用34楼的代码,不然横坐标无法匹配。

 

36楼的问题,你可以去掉代码 Chart.AxisX.ClearValueLabel

理解老师的意思,就是其中一曲线有缺失值,只能用0替代,以统一坐标,但是可否不用0 ,而用空值,即这段曲线就不显示,即为断续曲线?


 回到顶部
总数 55 上一页 1 2 3 4 5 6 下一页