实时WPF图表.Net 4

问题描述 投票:3回答:4

我正在研究诊断工具,每隔25毫秒接收一次数据。我需要使用lineSeries在我的图表中绘制这些数据。我正在使用带有lineSeries的wpf图表,我在xaml中绑定到ObservebleCollection。

问题是我需要集合需要包含至少1600个数据点,然后才开始在前面删除它们。

我知道25毫秒是一个很短的时间,然后它来绘制Wpf。有没有人解决我的问题?

问候

wpf charts real-time
4个回答
4
投票

您应该查看SciChart,它可以在1ms处理数据更新。它呈现为游戏循环,因此仅在追加新数据且UI线程空闲时绘制。有关www.scichart.com/wpf-chart-features的更多信息,其中显示了有关性能的功能和说明。

enter image description here

披露:这是我自己的组件,所以如果你有问题,请提出任何问题!


2
投票

我建议您使用自定义绘图例程,使用WritebleBitmap而不是形状,并在一个固定区域中一次绘制一条线,而不进行任何滚动。当你在你的阴谋区右侧达到1600点时,重新开始。也许某些视觉指示器(如垂直线或其他东西)会有助于感知。

我认为没有任何图表库可以每25ms更新1600点线。


2
投票

我有一个.NET应用程序,可以在33ms的间隔内绘制许多测量值。我测试了许多图表解决方案来完成这项任务,但我找到的唯一真正可行的选择是Arction LightningChart(http://www.arction.com)。 Lightning Chart可以很容易地完成您想要的任务,我认为您可以免费获得基本版本。缺点是对DirectX和SlimDX库的依赖。您可以从该站点下载的试用版将为您提供有关如何在WPF和Windows窗体中使用此控件的相当好的示例。


0
投票

使用WindowsFormsHost控件使用Microsoft Chart for WinForms。 MS-Chart可以很好地处理这样的数据速率。它在内部使用WritableBitmap方法,因此它既快速又稳定。另外,不要忘记将系列类型设置为FastLine以避免减速。

我在codeproject上创建了一篇“提示”文章,试图在MS-Chart上突出显示这种类型的高数据量用法。您可以将定时器间隔更改为1 ms。并且看到显示数据没有问题。

这篇文章是在http://www.codeproject.com/Tips/1006180/Using-Microsoft-Chart-in-WPF

© www.soinside.com 2019 - 2024. All rights reserved.