Keen IO - Как найти разницу между двумя сериями Keen.Series

Как найти разницу между двумя сериями (Keen.Series), а затем нанести ее на линейный график?

Я понял, как найти разницу между двумя показателями (Keen.Metric), но не могу понять, как получить каждый результат из обеих серий и соответственно вычесть их.

Если это поможет, вот как найти разницу между двумя показателями:

Keen.onChartsReady(function(){
  // Create a Metric containing our total $ amount in Keen IO credit card transactions (to and from)
  // Excludes: refund transactions from Stripe to card and declined cards
  var myMetric = new Keen.Metric("Stripe_Event",
    analysisType: "sum",
    targetProperty: "data.object.amount",
    filters: [
      {"property_name":"data.object.captured","operator":"eq","property_value":true},
      {"property_name":"data.object.amount_refunded","operator":"eq","property_value":0}]
  });

  // Create a Metric containing our total number of refunds
  var myMetric2 = new Keen.Metric("Stripe_Event", {
    analysisType: "sum",
    targetProperty: "data.object.amount_refunded",
    filters: [
    {"property_name":"type","operator":"eq","property_value":"charge.refunded"}]
  });

  // Find the difference and convert to dollars
  myMetric.getResponse(function(response){
    firstValue = response.result;
    myMetric2.getResponse(function(nextResponse){
      secondValue = nextResponse.result;
      difference = firstValue-secondValue;
      dollar = difference / 100;
      console.log(dollar);

      //Create a Number visualization for that metric.
      var myNumberVisualization = new Keen.Number(myMetric2, {
        height: "300",
        width: "600",
        prefix:"$",
        label: "Revenue"
      });

    //Draw the visualization in a div
    myNumberVisualization.draw(document.getElementById("myDiv"),
      {"result":dollar});
    });
  });
});

Я понял, как взять один Keen.Series и преобразовать каждый результат в долларовый формат (API Stripe выводит транзакции в копейках и должен быть разделен на 100, чтобы найти значение в долларах):

Keen.onChartsReady(function() {
  // Create a Series
  var mySeries = new Keen.Series("Stripe_Event", {
    analysisType: "sum",
    timeframe: "this_month",
    interval: "daily",
    targetProperty: "data.object.amount",
  });

  // Convert results from pennies to dollars
  var resultsInDollars = {}

  mySeries.getResponse(function(response){
    result = response.result
    $.each(result, function(index, object){
      result[index]["value"] = object["value"]/100
    });

    resultsInDollars = {
      result: result
      }

    // Line chart settings
    var myLineChart = new Keen.LineChart(mySeries, {
          height: 240,
          width: 300,
          xAxisLabelAngle:45
    });
    // Draw line chart
    myLineChart.draw(document.getElementById("overview"),resultsInDollars);
  });
}); 

Заранее спасибо.


person Brent Chow    schedule 21.02.2014    source источник


Ответы (1)


Вот суть чего-то очень похожего — разделение двух линейных диаграмм.

https://gist.github.com/wetzler/9127225

Просто измените операцию деления на вычитание, и все будет готово.

person Josh Dzielak    schedule 21.02.2014
comment
Вот суть, в которой рассказывается о решении, полученном из ответа Джоша. gist.github.com/brentchow/9147264 - person Brent Chow; 03.03.2014