请教高手:在Tee Chart 的一屏上面绘制曲线Series1的点数>10000000(1千万个点)?程序被阻死! ( 积分: 100 )

  • 主题发起人 主题发起人 jwei119
  • 开始时间 开始时间
J

jwei119

Unregistered / Unconfirmed
GUEST, unregistred user!
每秒向Tee Chart 的曲线Series1添加点数1万个点,开始Tee Chart还可以,后来当添加到Series1.Count>一百万点时,Tee Chart添加速度变慢,最后用于显示时间的定时器都被阻死了!如何解决?请兄弟们给出个主意,还有能用数据库关联Series1吗?
 
做工控的吧,这么大的数据,不死也得残废
采用动态数据好了
 
一直在线等,高手终于出现的确是做工控的,如何采用采用动态数据?请郭兄给出个主意!
 
老大,这个需要你自己来写了,不要用teechart保存大量的数据呀
我门做两个tchart,一个显示及时数据,一个查询历史数据
或者自己做一个画图的程序,具体要看你那客户的需求,根据需求定制方案
 
这么多数据内存扛的住嘛?不是tchart死,是你的内存不够了,要是有10G以上的内存,没有问题。
 
你就是有一千万个点,屏幕也显示不下
建议根据分辨率和图象大小,抽取关键点显示,随变随显。
google maps不也是这样的吗?
另外,建议使用多线程来显示
 
郭兄办法不错,但点数多了以后,两个tchart恐怕也扛不住?
 
郭兄的意思我想是一个显示最近的一段数据,另一个则根据用户的输入条件显示相应的数据,而不是把剩下的所有数据都放在另一个TChart里。其实最关键的是所有的数据都保存在数据库中,而显示的数据则根据需要来显示。
 
我是觉得如果抽样的数据样本过多,那么可以采取一定的算法,从这些样本中再抽取有用的,反应实际情况的点来画,同样,也可以采用gis里面的思想,那就是有些点在小于或者等于某一种值的时候,就不要显示了。这样可以提高显示的速度。
 
我发现兄弟们说的挺在行的,有点启示,希望看贴、回贴的高手继续。。。
 
就是你读取那么多的数据库也是要死的(可能假死),看看insql保存数据原理,他数据的保存数据也是够牛的。工业数据库都处理好了这些问题,你的不是个问题:)
 
以前做成声卡的数据采集.
我自己做的 Chart
也很麻烦
显示时根据显示比例来画,有点些不用画出来的.
不过从速度上而言, TChart 的确非常的快.
但它不能满足我的要求.
总之,这事还得自己做
 
1千万个点,既是现实出来也没有意思。看你的应用了。如果只是显示当前数据,你可以分段显示,把前面的数据删除。每次只是显示一段。如果需要显示历史数据,你可以使用两个chart,一个显示当前数据段,不失真的显示所有数据,另外一个chart按照一定比例显示,比如1000:1,或者更大的比例显示历史数据,这样可以让用户看到历史数据的趋势,也可以看当前段的详细数据(放大等操作都可以不失真)。而且,你可以让用户通过在显示历史数据的chart上选择数据回放 。
 
Tee Chart 的曲线Series1一次能装载多少个点?客户需要将最近半小时(当然时间越长越好)的采集点缩小到一屏上,停止采集后,发现有正负异常采集点时,点击该区域就放大观察......,其实客户的所有功能要求都已完成,就是Tee Chart 的曲线Series1点数〉一百万以后,很容易阻死程序?我估计应该有个技巧?
 
放大可以直接拖住鼠标从左上角往右下角拉就可以了,还原反方向就可以啊
 
To willyu兄:
放大可以直接拖住鼠标从左上角往右下角拉就可以了,还原反方向就可以啊

这个我知道,主要是Tee Chart 的曲线Series1点数〉一百万以后,很容易阻死程序?Series1点数到底能加载多少个点(不影响缩放速度),我一次性能否加载1万个点,或其他技巧?
 
一条chart曲线显示你说的1百万以上的数据,会很慢,不推荐这样的处理。你可以分段显示给用户。使用两个chart ,一个显示抽样的曲线,下面一个显示详细的数据,抽样的曲线,只是让用户选择要仔细分析的时间段 ,用户选择了相应时间段后再把详细数据显示给用户。
 
zywcd兄说的对!
 
自己解决了,不过还是要感谢各位兄弟的帖子,特别是 郭玉梁 和 zywcd兄弟,我会结铁送分的
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部