繁体   English   中英

从00:00开始在Zedgraph,X轴上绘制输入的串行数据

[英]Plotting incoming serial data on Zedgraph , X Axis starting from 00:00

我可以绘制当前时间的串行数据。 假设我给myPane.XAxis.Scale.Min = 0; 以及一些最大值,如何使它们反映在“ list.add(...,value);”上

“ ...”是我无法确定应该通过什么。 我将以下代码用于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);

我很感谢你的建议

我不知道它对您有帮助,但这是我用于实时数据绘图的代码。

/*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));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM