我正在开发一个上位机的工具,是用 tcp 进行连接的。连接完了之后我会接收到数据,格式如下:
demo:>1,2,3
demo:>5,6,7
我需要对上面的数据进行解析组成每个通道的数据(通道由每一列元素),如上所示就是有 3 个通道[1,5], [2,6], [3,7]。 然后需要实时的绘图,最大的问题是,这个连接数返回的数据很大约 1s 有 1w 行的数据量。我要怎么进行一个比较好的数据绘图呢。
1
liuhuihao 16 小时 13 分钟前
具体是要绘制成什么样子呢?三个柱状图,每个柱状图表示每个通道数据的数据和? 6 ,8 ,10 这样?
|
2
crysislinux 16 小时 11 分钟前 via Android
你需要先找一个合适的采样算法,屏幕上肯定不可能全部去画的
|
![]() |
3
UnluckyNinja 14 小时 38 分钟前 via Android
数据正常更新,绘图时 raf debounce 就行了,高频低频对接基本都是这个策略
|
![]() |
4
fenglayting 10 小时 51 分钟前
使用 canvas 绘制图片,每次重新绘制图片,使用 webworker 加 WebSocket 推送,数据比较大需要后端压缩,前端解压;一秒一次很慢了。。
|
5
3085570450tt 10 小时 24 分钟前
可以试试 [scichart]( https://www.scichart.com/javascript-chart-features/)
|
6
mayli 3 小时 43 分钟前
这个连接数返回的数据很大约 1s 有 1w 行的数据量
这个 1w 行是每行刷新绘制一次?那 1w fps 哪个库也做不到。 普通显示 30-60fps 就够了,你肯定要重采样,比如把 min max last avg 质量的算一下,然后 60fps 随便找个库就能做. |
7
mayli 3 小时 42 分钟前
顺便推荐个库:Dear ImGui
应该性能是够的 |
8
jifengg 4 分钟前
我同意 @crysislinux 的建议。不管你是想“一次显示 1 万数据”,还是想“一秒闪烁过一万次数据”都不太现实。想好怎么采样。
|
9
jifengg 2 分钟前
额,上面我说的不现实,是想着你要绘制“图表”之类的。
如果不是图表,是一些散列点,那一万个像素还是很简单的。应该主流的绘图库都可以支持 |