2013-03-26 28 views
1

我正在尋找一種方式,使用cubism.js 這裏JSON數據源是我的代碼:使用JSON數據源簡單cubism.js

<script> 
var context = cubism.context() 
    .serverDelay(0) 
    .clientDelay(0) 
    .step(1e3) 
    .size(960); 


var dataset = [ [-1, -3], [2, 4], [3, -4], [-3, 1]]; 
//var foo = random("foo"); 
var foo = context.metric(function(start, stop, step, callback) { 
    d3.json(dataset, function(data) { 
    if (!data) return callback(new Error("unable to load data")); 
    callback(null, data); 
    }); 
}); 
var bar = random("bar"); 

d3.select("#kpi2").call(function(div) { 

    div.append("div") 
     .attr("class", "axis") 
     .call(context.axis().orient("top")); 

    div.selectAll(".horizon") 
     .data([foo]) 
    .enter().append("div") 
     .attr("class", "horizon") 
     .call(context.horizon().extent([-20, 20])); 

    div.append("div") 
     .attr("class", "rule") 
     .call(context.rule()); 

}); 

context.on("focus", function(i) { 
    d3.selectAll(".value").style("right", i == null ? null : context.size() - i + "px"); 
}); 

</script> 

我聽說過使用context.metric但我不知道如何使用,因爲這是一個新手。 感謝

+0

你看過這個鏈接嗎? http://stackoverflow.com/questions/10526058/using-other-data-sources-for-cubism-js?rq=1 – 2013-04-19 05:44:39

回答

-2
function stock(name) { 
    return context.metric(function(start, stop, step, callback) { 
     d3.json("/data" + name + ".json", function(rows) { 
      var compare = rows[0][1], value = rows[0][1], values = [value]; 

      // Creates an array of the price differences throughout the day 
      rows.forEach(function(d) { 
       values.push(value = (d[1] - compare)/compare); 
      }); 
     callback(null, values); }); 
    }, name); 
} 

你可以看看這個例子瞭解更多詳情:http://www.kshitijaranke.com/author/

Can we use custom JSON Data on Cubism?

它應該給你一個良好的開端就如何做到這一點。

+0

雖然這可能在理論上回答這個問題,[這將是優選的](/ /元.stackoverflow.com/q/8259)在這裏包含答案的基本部分,並提供供參考的鏈接。 – Tunaki 2016-01-31 11:18:46

+0

你的意思是我想添加一個代碼片段來表明我作爲答案並說明我在右上方的鏈接引用了嗎? – edwin 2016-02-01 02:03:37