OxyPlot更新图表

时间:2016-01-22 09:20:56

标签: c# wpf oxyplot

问题

我使用了名为“OxyPlot”的第三方插件。我的WPF应用程序。此插件允许您在不同类型的图形上绘制点。

在我的图表上,我正在显示' 带宽'当我点击某个按钮时,我的电脑每秒钟。图表正在正确更新并正常工作,但我不确定图表如何自动滚动通过' 最大'我设定的价值。

代码

这是播放按钮,将启动计时器:

private void CameraPlayShow(object sender, RoutedEventArgs e)
{
    videoStreamTimer.Tick += new EventHandler(videoStreamTick);
    videoStreamTimer.Interval = new TimeSpan(0, 0, 0, 1, 0);
    videoStreamTimer.Start();
}

这是计时器调用的方法,在这里我们称之为' UpdateGraph ':

private void videoStreamTick(object sender, EventArgs e)
{
    UpdateGraphStats();
}

这是我们添加新点的方法:

private void UpdateGraphStats()
{
    _xValue++;

    try
    {
        DataTable serverStats = Global.podiaClient.GetLiveStats(Global.podiaSession, Global.gChapter.Guid).Tables[0];

         _bandwidth.Points.Add(new DataPoint(_xValue, GetEncoderCPU()));
         Model.InvalidatePlot(true);

    }
    catch (Exception ex)
    {          
    }
}

最后,这是我配置PlotModel的地方:

private static PlotModel CreateNormalDistributionModel()
{
    var plot = new PlotModel
    {
        Title = "Encoder CPU",
        Subtitle = "Lorem Ipsum Lorem Ipsum Lorem Ipsum"
    };

    plot.Axes.Add(new LinearAxis
    {
        Position = AxisPosition.Left,  
        TickStyle = TickStyle.Inside          

    });
    plot.Axes.Add(new LinearAxis
    {
        Position = AxisPosition.Bottom,
        IsPanEnabled = false,
        Minimum = 0,
        Maximum = 100,
        MinorStep = 1,
        MajorStep = 5,
        MajorTickSize = 2,
        MinorTickSize  = 1,
        TickStyle = TickStyle.Inside

    });

    return plot;
}

摘要

因此,您可以从代码中看到_xValue是否超过100,这是底轴的最大值。图表将停止移动,我希望它与数据一起滚动。

问题

如何使用我正在绘制的点向右移动图形?

0 个答案:

没有答案