我已经使用amCharts建立了一个序列图。工作流程为:


前端允许用户一一添加趋势线。
对于添加的每个趋势线,将从MySQL数据库(使用PHP脚本)中获取数据,并以JSON格式返回到amCharts。


所需功能:
-用户应具有选择其他粒度的能力。 MySQL DB每分钟都有数据。例如,用户可以选择绘制小时平均值。

题:
-是否可以在从MySQL提取分钟数据并以JSON格式返回后进行汇总?也许某些JavaScript函数可以聚合PHP / MySQL返回的JSON数据。

我不希望在MySQL查询中进行聚合的原因是为了使聚合切换更快。例如,如果前端JavaScript正在汇总MySQL的分钟数据,则从小时平均切换为每日平均将不需要再次查询MYSQL DB,因为分钟数据已经可用。

任何想法都欢迎。

谢谢
普拉纳夫

最佳答案

您只需要将Json结果保存在变量中,然后重新构建JSON并将此重新构建传递给amcharts。这样,您就可以使用JS进行聚合。唯一的缺点是,当用户要查看平均趋势线时,必须向服务器询问详细信息...


您有10个不同的趋势线,每个趋势线有4种粒度:日,月,年,世纪。

第一种方法
如果用户要求5个具有年份的趋势线,则您AJAX CALL会获取5个日级别的趋势线的json,然后在客户端使用JS来构建月份,年份和世纪。

然后,如果用户要求输入6条趋势线(以及5条用户之前已经提出过的),则必须使JS足够智能,以便仅调用一条趋势线并将其添加到已经获得的5条趋势线中

第二种方法
或者您创建复杂的机制,根据需要丰富趋势线数据精度:
如果用户要求5个趋势线和一个月,那么您将获得月,则可以构建年和世纪,而不是日,因为它不是必需的。

然后,如果用户要求提供6个粒度年的趋势线,则您必须使该函数变得聪明,使得JSON接收将仅包含1个粒度年的趋势线,然后仅为该趋势线建立世纪,因为JS中已经有其他趋势线可用。

关于javascript - 更改amCharts数据的粒度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30612457/

10-12 20:48
查看更多