Foxtable(狐表)用户栏目专家坐堂 → [求助]关于图标,请问可以生成这样的图表吗?


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

主题:[求助]关于图标,请问可以生成这样的图表吗?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/7 9:32:00 [显示全部帖子]

参考代码

 

Dim cmd As new SQLCommand
cmd.CommandText = "select top 20 format(抄表时间, 'yyyy-MM-dd') As 日期, hour(抄表时间)*3600+minute(抄表时间)*60+second(抄表时间) As 抄表时间, 总功率 from {表A}"
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim dt As DataTable = cmd.ExecuteReader
Chart= Forms("窗口1").Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.XYPlot
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.AxisX.ClearValueLabel
Chart.AxisX.Major = 3600
For Each rq As String In dt.GetValues("日期")
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 86400 '图系的数据点数等于表的行数
    series.Text = rq
    Dim drs = dt.Select("日期 = '" & rq & "'", "抄表时间")
    For i As Integer = 0 To drs.count-1
        Series.X(i) = drs(i)("抄表时间") '指定水平坐标
        Series.Y(i) = drs(i)("总功率") '指定垂直坐标
    Next
Next
For i As Integer = 3600 To 86400 Step 3600
    Chart.AxisX.SetValueLabel(i, i / 3600) '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/7 9:35:00 [显示全部帖子]


 回到顶部