FireHe 发表于 2016-5-2 22:53:08

【请教】有没有能支持大数据量的chart控件?VS2015自带的不行

C#有没有比VS2015自带的chart控件更好用的曲线控件?我现在有一个项目,用串口输入数据。解析后在chart上绘制曲线,当数据量比较多的时候,响应速度迟缓明显

这个有更好的解决方案吗?

fuxinaries 发表于 2016-5-2 23:40:20

试试TeeChart吧,我一直在C++ Builder中用,不过这个有.NET的版本

youkebing 发表于 2016-5-2 23:43:24

自己用GDI画吧,这个效率肯定没有问题

richards 发表于 2016-5-3 00:05:13

qtchartsqwt

Puppey 发表于 2016-5-3 07:58:44

遇到同样的问题,

FireHe 发表于 2016-5-3 08:16:54

刚刚搜索 Teechart 受到启发,将线改成了 FastLine,速度快了一些。但整体上还是很慢

16000个点,要好几秒才能画完

tangxh 发表于 2016-5-3 08:17:11

数据的刷新频率高吗?

FireHe 发表于 2016-5-3 08:20:22

tangxh 发表于 2016-5-3 08:17
数据的刷新频率高吗?

分两种情况,一种是数据导入,这个是一次性导入最多几万个数据。

另一种是实时数据,这个最快的时候是1ms一个包,通过串口发过来的。这个我用定时器刷,100ms刷一次。

cnxh 发表于 2016-5-3 09:04:14

我估计是不是用的控件没画一个点,控件就会自动刷新一次,这样肯定会慢,如果是这样的话,可以试试调用api锁定控件刷新,等全部点刷新完毕后在调用api解锁控件的刷新,然后再刷新一次

zhaomzs 发表于 2016-5-3 09:47:38

以前在VC中用过High-speed Charting Control,性能还可以,不过是C++写的。

qidaimengxing 发表于 2016-5-3 09:56:04

这个需要自己缓存数据,数据处理以后再绘图。
绘图的时候用内存绘图。

qq302011 发表于 2016-5-3 10:10:31

这个记住了,有用哈

dellric 发表于 2016-5-3 15:11:18

本帖最后由 dellric 于 2016-5-3 15:12 编辑

FireHe 发表于 2016-5-3 08:16
刚刚搜索 Teechart 受到启发,将线改成了 FastLine,速度快了一些。但整体上还是很慢

16000个点,要好几秒 ...

可能你的绘制算法有问题,不显示的不要画,多个点重叠的画一个点……等等

FireHe 发表于 2016-5-3 18:23:14

dellric 发表于 2016-5-3 15:11
可能你的绘制算法有问题,不显示的不要画,多个点重叠的画一个点……等等 ...

我用的是VS2015 自带的 Chart 控件,绘图不是自己控制的

zyqcome 发表于 2016-5-3 18:33:59

这个大数据不能直接写入吧?应该和表格控件大数据写入一个道理,一次写入几千条我都换了好几种写入法才搞定

xstt 发表于 2016-5-3 18:53:10

LZ可以试试换一个方法,输入数据太多时绘制肯定慢的,你中间加一步将数据合并一下再显示出来(如2000条优化成200条),这样就快了。反正你细节也显示不了这么多条的吧?

FireHe 发表于 2016-5-3 19:23:32

xstt 发表于 2016-5-3 18:53
LZ可以试试换一个方法,输入数据太多时绘制肯定慢的,你中间加一步将数据合并一下再显示出来(如2000条优化 ...

不好合并

因为有放大看细节的操作,所以一定要保留全部数据的

redroof 发表于 2016-5-3 21:54:20

FireHe 发表于 2016-5-3 19:23
不好合并

因为有放大看细节的操作,所以一定要保留全部数据的

虽然Delphi bcb很老了,我还是要说,试试Delphi自带的teechart吧!
它有activeX版本,所有的编程语言都能用。
上万点对它完全不是问题

ziruo2002ab 发表于 2016-5-4 10:28:45

teechart在bcb很好用,基本上所有的图形放大缩小功能都很完备,C#上的使用让人期待,用过的介绍下

linbin250 发表于 2016-5-4 11:01:32

用这个做图表挺好!记录一下!
teechart 不知道是不是需要注册{:smile:}

yuyu87 发表于 2016-5-4 11:17:27

C#里边自己画,太简单了吧,为什么要用什么控件呢,真的很简单喲~ 在paint事件里重绘就可以了,
页: [1]
查看完整版本: 【请教】有没有能支持大数据量的chart控件?VS2015自带的不行