vb.net图表经过的时间,即从T = 0开始

时间:2013-12-05 07:06:20

标签: vb.net charts timespan

我正在尝试绘制看起来像这样的XY数据:

x = (1/1/2000 10:01:23, 1/1/2000 10:02:50, 1/1/2000 10:04:11)
Y = (1,2,3)

我也有一个开始时间,T = 0,例如1/1/2000 10:00:00。

我想要绘制的是:

X = (00:01:23, 00:02:50, 00:04:11) 'for purpose of question, a random interval
Y = (1,2,3)

即。通过执行时间(x) - 开始时间计算的ELAPSED时间。

但是,您无法绘制数据类型时间跨度图:“系列数据点不支持System.TimeSpan类型的值,只能使用这些类型的值:Double,Decimal,Single,int,long,uint,ulong,String ,DateTime,简短,ushort。“

当我无法发送时间时,如何调用:Chart.Series(0).Points.AddXY(ElapsedTime,YValue)?如果我转换为日期时间,我得到1/1/0001 12:01:23或类似。

确切的相关代码是:

Dim a As DateTime = Convert.ToDateTime(DateTimePicker.Text) 'this is the starttime
Dim b As DateTime = ParseTimeStamp(ReferenceNumber) 'returns a datetime
Dim YValue as integer = 123

    ElapsedTime = ??? 'some code that I can't work out to get elapsed time in chart friendly manner

Chart.Series(0).Points.AddXY(ElapsedTime,YValue)

感谢。

编辑:为寻求解决方案的任何人找到了解决方案。

Dim a As DateTime = Convert.ToDateTime(StartTime.Text) 'a starting time
Dim b As DateTime = ParseTimeStamp(RefNumber) 'time you want to compare
Dim c As TimeSpan = b.Subtract(a)
Dim d As DateTime = Convert.ToDateTime(c.ToString)

MudLineChart.ChartAreas(0).AxisX.LabelStyle.Format = "HH:mm"
MudLineChart.Series(0).Points.AddXY(d.ToOADate(), YValue)

您需要将XValueType系列格式化为时间。

0 个答案:

没有答案