以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于图标,请问可以生成这样的图表吗?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=110650)

--  作者:lhpc120
--  发布时间:2017/12/7 5:11:00
--  [求助]关于图标,请问可以生成这样的图表吗?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20171207050444.png
图片点击可在新窗口打开查看

已上传我的表样式,请问可以生成这样的图标吗?最好手工编码!

 

 

一天24小时,不定时获取数据,在指定的时间点显示相应的数值。

 

比如12.25分采集的数据,那么在11点和12点之间显示数据点

 

我尝试过设置86400个数据点,代码如下,但是现实的不对!


--  作者:lhpc120
--  发布时间:2017/12/7 5:16:00
--  
Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart= e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.SeriesList.Clear() \'清除图表原来的图系
Chart.AxisX.Major = 3600
Series = Chart.SeriesList.Add() \'增加一个图系
Series.Length = 86400 \'新增图系包括10个数据点
For i As Integer = 0 To 86400-1 \'指定每个数据点的位置
    Series.X(i) = i \'指定水平坐标
    Series.Y(i) = i + Rand.Next(5) \'垂直坐标用随机数生成
Next

--  作者:lhpc120
--  发布时间:2017/12/7 5:17:00
--  
然后按照每个时间的秒数进行定位数据点,但是还是失败了!
--  作者:lhpc120
--  发布时间:2017/12/7 5:19:00
--  
希望给一个方法!  X轴0-24点是一直出现的,在指定坐标显示指定的数据点!
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20171207050444.png
图片点击可在新窗口打开查看

--  作者:lhpc120
--  发布时间:2017/12/7 9:04:00
--  
在线等!!!急!!
--  作者:有点甜
--  发布时间: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 \'图列显示在南方(底端)


--  作者:有点甜
--  发布时间:2017/12/7 9:35:00
--  

你这种,尽量用echart吧,更灵活,参考

 

http://echarts.baidu.com/examples.html#chart-type-pie

 

http://www.foxtable.com/bbs/query.asp?keyword=echart&boardid=0&sType=7&stable=Dv_bbs1&submit=%D5%BE%C4%DA%CB%D1%CB%F7

 

实例

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=110293&skin=0

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=103519&skin=0

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=100708&skin=0

 


--  作者:zhy400137
--  发布时间:2018/9/13 16:19:00
--  
学习!