以下代码在0.3版本上运行没问题。
1、曲线随着坐标轴的变化动态显示固定范围内的数据点
通俗的说就是曲线实时滚动,因为默认情况下,如果显示的数据随着时间动态变化,那么曲线会在坐标轴上不断的被“挤压”在一起,以显示从开始到现在的所有数据。
有时只需要动态的查看当前时间点前后固定区间的数据情况 ,这个时候就需要动态的显示固定范围内的曲线。
代码如下:
ObservableDataSource<Point> currentDataFrame = new ObservableDataSource<Point>();
private DispatcherTimer recodertimer = new DispatcherTimer();
private void Button_Click4(object sender, RoutedEventArgs e)
{
recodertimer.Tick += new EventHandler(recodertimer_Tick);
recodertimer.Interval = TimeSpan.FromSeconds(0.1);
recodertimer.Start();
plotter.AddLineGraph(currentDataFrame, Colors.Red, 1, "这是图例");
}
private void recodertimer_Tick(object sender, EventArgs e)
{
Point point = new Point(0, 0);
point.X = ++i;
point.Y = Math.Sin(i);
currentDataFrame.AppendAsync(base.Dispatcher, point);
plotter.Viewport.FitToView();
plotter.Viewport.Visible = new System.Windows.Rect(i - 5, -1, 10, 2);
}
其中主要的就是
plotter.Viewport.Visible = new System.Windows.Rect(i - 5, -1, 10, 2);
通过设置一个固定大小的矩形区域,来显示某个动态区间的数据。
第一个值是X轴的起点,第二个是Y轴,第三个是X轴的区间大小,第四个是Y轴的区间大小。