2014-02-19 28 views
1

开始我能够与当前时间绘制的串行数据。假设我给myPane.XAxis.Scale.Min = 0;和一些最大值,我怎么让他们反映在“list.add(...,价值);”绘制上Zedgraph输入串行数据,X轴从00:00

“...”是我无法计算应该是什么通过。我使用下面的代码HH:mm:ss。不过,我需要的X轴是这样的,从00:00开始,直到说5分钟。

myPane.XAxis.Scale.MaxAuto = true; 
myPane.XAxis.Scale.MinAuto = true; 
myPane.XAxis.Type = AxisType.Date; 
myPane.XAxis.Scale.Format = "HH:mm:ss"; 
myPane.Legend.Position = ZedGraph.LegendPos.TopCenter; 

DateTime now = new DateTime();
now = DateTime.Now; double timestamp = new XDate(now);
list.Add(timestamp, f);

我会感激你的建议

回答

1

我不知道它可以帮助你,但是这是我的实时数据绘制的代码。

/*Initial pane settings*/ 
pane.XAxis.Type = AxisType.Date; 
pane.XAxis.Scale.Format = "dd/MM/yy\nH:mm:ss"; 
pane.XAxis.Scale.Min = (XDate)(DateTime.Now); 
//Shows 25 seconds interval. 
pane.XAxis.Scale.Max = (XDate)(DateTime.Now.AddSeconds(25)); 
pane.XAxis.Scale.MinorUnit = DateUnit.Second; 
pane.XAxis.Scale.MajorUnit = DateUnit.Minute; 
pane.XAxis.MajorTic.IsBetweenLabels = true; 
pane.XAxis.MinorTic.Size = 5; 

/*Real time plotting*/ 
XDate time = new XDate(DateTime.Now.ToOADate()); 
LineItem curve= curve= myPane.CurveList[0] as LineItem; 
IPointListEdit list = list = curve.Points as IPointListEdit; 
list.Add(time,data); 
//Scale pane if current time is greater than the initial xScale.Max 
Scale xScale = zgcMasterPane.MasterPane.PaneList[0].XAxis.Scale; 
if (time.XLDate > xScale.Max) 
{ 
    xScale.Max = (XDate)(DateTime.Now.AddSeconds(5)); 
    xScale.Min = (XDate)(DateTime.Now.AddSeconds(-20)); 
} 
+0

谢谢!我会检查出来的 – Porcupine