Как найти разницу между двумя сериями (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);
});
});
Заранее спасибо.