Javascript 更改amCharts数据的粒度

Javascript 更改amCharts数据的粒度,javascript,mysql,json,aggregate-functions,amcharts,Javascript,Mysql,Json,Aggregate Functions,Amcharts,我用amCharts建立了一个系列图表。工作流是: 前端允许用户逐个添加趋势线 对于每个添加的趋势线,数据都从MySQL数据库(使用PHP脚本)中获取,并以JSON格式返回到AMSCHARTS 所需功能: -用户应该能够选择不同的粒度。MySQL数据库每分钟都有数据。例如,用户可以选择绘制每小时平均值 问题: -在从MySQL获取分钟数据并以JSON格式返回后,是否可以进行聚合?也许一些JavaScript函数可以聚合PHP/MySQL返回的JSON数据 我不希望在MySQL查询中进行聚合的

我用amCharts建立了一个系列图表。工作流是:

  • 前端允许用户逐个添加趋势线
  • 对于每个添加的趋势线,数据都从MySQL数据库(使用PHP脚本)中获取,并以JSON格式返回到AMSCHARTS
所需功能: -用户应该能够选择不同的粒度。MySQL数据库每分钟都有数据。例如,用户可以选择绘制每小时平均值

问题: -在从MySQL获取分钟数据并以JSON格式返回后,是否可以进行聚合?也许一些JavaScript函数可以聚合PHP/MySQL返回的JSON数据

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

欢迎提出任何意见

谢谢
Pranav

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

示例 您有10条不同的趋势线,每条趋势线有4个粒度:日、月、年、世纪

第一种方法 如果用户询问5条granuarity年份的趋势线,您可以通过AJAX调用获取5条granuarity日趋势线的json,然后使用JS在客户端构建月份、年份和世纪

然后,如果用户要求6条趋势线(其中5条是用户之前已经询问过的),那么您必须使JS足够智能,以便只调用一条趋势线,并将其添加到您已经获得的5条趋势线中

第二种方法 或者您创建复杂的机制,根据需要丰富趋势线数据: 若用户询问Grabaurity month的5条趋势线,你们得到了month,那个么你们可以构建year和century,但不能构建day,因为它是不需要的


然后,如果用户要求提供6条granuarity年度趋势线,那么您必须将函数设置为smart,JSON receive将只包含1条granuarity年度趋势线,然后仅为该趋势线构建century,因为JS中已经提供了其他趋势线。

感谢您的快速回复。但是,我不理解您所说的“您必须向服务器询问详细信息……或者您创建了复杂的机制,以根据需要丰富趋势线数据预测”@luvlogic是否回答了您的问题?