在图表中显示数据的有效方法

时间:2014-03-06 12:09:53

标签: postgresql d3.js highcharts google-visualization

我有一个应用程序,其中一些值存储在DB中,例如每秒一个值。它是每7天604800个值,如果我想在图表中查看此值,我需要一些有效的方法如何仅获得例如如果我的图表宽度为800px,则来自DB的800个值。

我使用一些聚合逻辑,其中计算2,3,4,5,6,10,12分钟间隔值的平均值,然后计算小时和日间隔聚合。

我使用PostgreSQL,这个聚合用语句计算:

 "INSERT INTO aggre_table_ ... SELECT sum(...)/count(*) ... WHERE timestamp > ... and timestamp < ..."

有没有更好的方法来执行此操作或数据聚合的最佳方式以便以后在图表中显示?

通过某些触发器或调用存储过程来执行此操作会更好吗?

D3js,Highcharts或Google Charts的聚合是否有任何数据库支持?

2 个答案:

答案 0 :(得分:1)

如何汇总数据是一个独立于您的技术选择的大型主题。这在很大程度上取决于数据的敏感程度,数据的重要指标是什么,这些指标的含义是什么等等。

单个超出范围点是否显着?或者您在寻找整体趋势?这些都是一个很大的问题,答案并不容易。

我的一般建议:

  • 显示一周的数据,汇总到小时平均值。

  • 在该行周围提供一个范围,表示每个平均值

  • 周围的点数分布
  • 如果在该聚合点内发生重大事件,请使用单独的标记指示

  • 为每个聚合点提供向下钻取功能,以查看已绘制的完整详细信息,如果该详细程度很重要(可能是,则不是)

答案 1 :(得分:0)

在Highcharts中(事实上是Highstock)dataGrouping用于近似(见demo)。

此外,here您可以找到有关Highstock的更多信息。