【请教】有没有能支持大数据量的chart控件?VS2015自带的不行
C#有没有比VS2015自带的chart控件更好用的曲线控件?我现在有一个项目,用串口输入数据。解析后在chart上绘制曲线,当数据量比较多的时候,响应速度迟缓明显这个有更好的解决方案吗? 试试TeeChart吧,我一直在C++ Builder中用,不过这个有.NET的版本 自己用GDI画吧,这个效率肯定没有问题 qtchartsqwt 遇到同样的问题, 刚刚搜索 Teechart 受到启发,将线改成了 FastLine,速度快了一些。但整体上还是很慢
16000个点,要好几秒才能画完 数据的刷新频率高吗? tangxh 发表于 2016-5-3 08:17
数据的刷新频率高吗?
分两种情况,一种是数据导入,这个是一次性导入最多几万个数据。
另一种是实时数据,这个最快的时候是1ms一个包,通过串口发过来的。这个我用定时器刷,100ms刷一次。 我估计是不是用的控件没画一个点,控件就会自动刷新一次,这样肯定会慢,如果是这样的话,可以试试调用api锁定控件刷新,等全部点刷新完毕后在调用api解锁控件的刷新,然后再刷新一次 以前在VC中用过High-speed Charting Control,性能还可以,不过是C++写的。 这个需要自己缓存数据,数据处理以后再绘图。
绘图的时候用内存绘图。 这个记住了,有用哈 本帖最后由 dellric 于 2016-5-3 15:12 编辑
FireHe 发表于 2016-5-3 08:16
刚刚搜索 Teechart 受到启发,将线改成了 FastLine,速度快了一些。但整体上还是很慢
16000个点,要好几秒 ...
可能你的绘制算法有问题,不显示的不要画,多个点重叠的画一个点……等等 dellric 发表于 2016-5-3 15:11
可能你的绘制算法有问题,不显示的不要画,多个点重叠的画一个点……等等 ...
我用的是VS2015 自带的 Chart 控件,绘图不是自己控制的
这个大数据不能直接写入吧?应该和表格控件大数据写入一个道理,一次写入几千条我都换了好几种写入法才搞定 LZ可以试试换一个方法,输入数据太多时绘制肯定慢的,你中间加一步将数据合并一下再显示出来(如2000条优化成200条),这样就快了。反正你细节也显示不了这么多条的吧? xstt 发表于 2016-5-3 18:53
LZ可以试试换一个方法,输入数据太多时绘制肯定慢的,你中间加一步将数据合并一下再显示出来(如2000条优化 ...
不好合并
因为有放大看细节的操作,所以一定要保留全部数据的 FireHe 发表于 2016-5-3 19:23
不好合并
因为有放大看细节的操作,所以一定要保留全部数据的
虽然Delphi bcb很老了,我还是要说,试试Delphi自带的teechart吧!
它有activeX版本,所有的编程语言都能用。
上万点对它完全不是问题 teechart在bcb很好用,基本上所有的图形放大缩小功能都很完备,C#上的使用让人期待,用过的介绍下 用这个做图表挺好!记录一下!
teechart 不知道是不是需要注册{:smile:} C#里边自己画,太简单了吧,为什么要用什么控件呢,真的很简单喲~ 在paint事件里重绘就可以了,
页:
[1]