我正在尝试绘制看起来像这样的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系列格式化为时间。