DateTime作为oxyplot LineSeries中的排序键

时间:2017-11-15 13:36:34

标签: oxyplot

有没有办法告诉oxyplot使用x值作为线图的连接/绘制顺序而不是添加点的顺序?

让我们假设我有一个时间序列中的大量积分(2Gb在RAM中)。在更高的级别,我只添加了一小部分这些点,当用户缩放到更具体的区域时,我会在系列中添加更多的点,以便他可以看到更多细节。几乎像纹理mimap。 我可以一次添加所有点但是当我尝试在WPF中的单个窗口中渲染所有这些点时,氧气变得非常慢也许这里有另一种解决方案?

我面临的问题是,氧气从图表的最后一个点到新批次的第一个点绘制一条线,因为它使用系列点列表作为绘制顺序而不是X值。有没有办法改变这个?

这是一个基于'WPF简单示例'的小例子:

        var plotModel = new PlotModel { Title = "Simple example", Subtitle = "using OxyPlot" };
        var timeAxis = new DateTimeAxis
        {
            Position = AxisPosition.Bottom,
            StringFormat = "hh:mm:ss",
        };
        plotModel.Axes.Add(timeAxis);

        var now = DateTime.UtcNow;

        // Create two line series (markers are hidden by default)
        var series1 = new LineSeries { Title = "Series 1", MarkerType = MarkerType.Circle };
        series1.Points.Add(new DataPoint(DateTimeAxis.ToDouble(now), 5));
        series1.Points.Add(new DataPoint(DateTimeAxis.ToDouble(now.AddMinutes(1)), 7));
        series1.Points.Add(new DataPoint(DateTimeAxis.ToDouble(now.AddMinutes(2)), 8));
        series1.Points.Add(new DataPoint(DateTimeAxis.ToDouble(now.AddMinutes(0.5)), 10));

        // Add the series to the plot model
        plotModel.Series.Add(series1);
        // Set the Model property, the INotifyPropertyChanged event will make the WPF Plot control update its content
        this.Model = plotModel;

这是输出,请注意该行绘制“时间倒流”: Output

是否有一个解决方案不涉及我对点列表进行排序(甚至不确定这是否有效)? 或者也许我正在为细节做这个额外的点完全错误:)

0 个答案:

没有答案