如何对大量的图表数据进行压缩

varlj 2015-08-20 10:50:01
当前的需求是,对于从数据库查询出来的数据,显示在图表上,显示成折线图——这本来是很简单的是,问题是,数据量相当的大,随随便便都有20来万(硬件采集数据,设定时间段查看,所以这一步估计是没法优化了),这么多的数据,直接转成JSON再传给前台,肯定是不合适的

个人想法,是把数据在后台压缩(删减)一下,再传给后台,因为浏览器界面有限,这几十万的点不可能都画出来的

所以想请教下,有没有什么比较成熟的这方面的算法可以借鉴,就怕自己想的算法使曲线相差太大
...全文
272 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
q99jqhvjyx 2015-08-20
  • 打赏
  • 举报
回复
比如说你的横轴是时间,第一个显示的是一天的折线图,你可以按24或48个点来取,这样可以看出一天之内大概的一个情况。 在界面上可以2次查询一段时间内的情况。
q99jqhvjyx 2015-08-20
  • 打赏
  • 举报
回复
你的横轴是什么属性,可以按照这个属情取值分组,按一定的范围只取一个值(例如求平均),这样就可以在前台不显示这么多点了。然后再可以根据不同点再细化。。。
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
你如果对数据进行删减,每个数据有不一致,你怎么确定是去删减哪些? 数据的格式是固定的么? 数据格式不固定,没法确定哪些要哪些不要把?
sjlzcj 2015-08-20
  • 打赏
  • 举报
回复
为什么要把json返回给前台? 后台根据数据直接生成折线图,,然后前台 显示 折线图的图片 这样数据量 ,就不要选择 JS 报表工具了,,有很多报表工具都是后台生成的
varlj 2015-08-20
  • 打赏
  • 举报
回复
谢谢楼上几位,补充一下 横轴是时间,这个是由用户决定的,虽然我们已经做了限制,但是哪怕最小的时间段,几万数据还是有的 纵轴是类似温度这样的数据 我个人想法是先按时间分片,比如100个数据为一段,然后再求平均值,虽然效果是出来了,就怕不够精确,比如在这100个数据中,刚好有一个数据变化特别大的

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧