实时WPF图表.Net 4

时间:2010-10-25 08:42:22

标签: wpf charts real-time

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

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

据我所知,25毫秒是一个短暂的结果然后它来绘制wpf。任何人都可以解决我的问题吗?

问候

4 个答案:

答案 0 :(得分:4)

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

enter image description here

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:0)

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

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

文章位于http://www.codeproject.com/Tips/1006180/Using-Microsoft-Chart-in-WPF