使用 amCharts 显示多个值的总和

Showing sum of multiple values with amCharts

我想用 amCharts 将多个值的总和显示为一个图表输出。我正在使用带有 JSON 的 dataLoader 来获取数据。我知道我必须为其创建一个函数,但我不明白如何从 dataLoader 获取数据来计算

{
    "balloonText": "[[title]] of [[valueAxis]]:[[value]]",
    "lineThickness": 3,
    "id": "sumValue",
    "title": "sum Value",
    "valueField": (function() {
        var sumValues = "calculation";
        return sumValues
    }

这种尝试可能不正确,但我就是这样开始的

{
    "balloonText": "[[title]] of [[valueAxis]]:[[value]]",
    "lineThickness": 3,
    "id": "LoadigTime",
    "title": "Loadig Time",
    "valueField": (function() {
      var sumValues = (HomePageLoad + LoginToParametersLoad + ParametersLoad + AlarmsLoad + SwitchSideLoad + LoginToAdminLoad + AdminLoad) / 7;
      return sumValues
      })
    }

valueField 不能是函数,只能是对数据中字段的字符串引用。

如果图表旨在将数据中所有这些字段的总和显示为图表,只需向 postProcess 回调添加逻辑即可创建包含总和的新数据集,例如

postProcess: function(data) {
  var newData = [];
  data.forEach(function(dataItem) {
    var item = {
      YOUR_CATEGORY_FIELD: dataItem.YOUR_CATEGORY_FIELD, //replace with your category field name
      sum: 0
    }; 
    //loop through your item's keys and sum everything up, filtering out
    //your category property
    item.sum = Object.keys(dataItem).reduce(function(sum, key) {
      if (key !== "YOUR_CATEGORY_FIELD") {
        sum += dataItem[key]
      }
      return sum;
    }, 0);
    newData.push(item);
  });
  return newData;
},
// ...
graphs: [{
   valueField: "sum",
   // other props here
}]