2013-07-03 19 views
0

我想在立體主義中以1小時分離軸24小時。軸1天,在立體派中有10分鐘的步驟

var context = cubism.context() 
    .serverDelay(30*1000) 
    .step(10 * 60 * 1000) //The step size is 10 mins 
    .size(window_width - 200); 

d3.select("#viz").selectAll(".axis") 
    .data(["top", "bottom"]) 
    .enter().append("div") 
    .attr("class", function(d) { return d + " axis"; }) 
    .each(function(d) { d3.select(this).call(context.axis().ticks(d3.time.hours, 1).orient(d)); }); 

此行context.axis()。ticks(d3.time.hours,1).orient(d)在某種程度上是錯誤的。由於軸文本重疊並且沒有任何可見的內容。 我嘗試了許多組合,如60分鐘,1天,但似乎沒有工作。 任何人都可以幫助我。

+0

如果你指定一個固定的滴答數(在這種情況下是12),會發生什麼? – 2013-07-06 16:59:44

+0

爲蜱(12)它顯示了在中間12點的日子。像星期五05,12 PM,Sat 06,12PM – Dan

+0

你做過這樣的事情:蜱(12)還是你做蜱(d3.time.hours,12)?第一個是我的意思。 – 2013-07-06 17:22:31

回答

1

您誤解了size的功能。 size未指示屏幕上可用的像素數量。它表示您擁有的數據點的數量,這反過來又是您顯示數據所需的像素數量。數據點的數量決定了大小,相反不是

您提到過,您每隔10分鐘就會有24小時的數據,並且每隔10分鐘會有一個值。這會使您的圖形寬度爲144 px,而不是window_width - 200,正如您在size中指定的那樣。

這也解釋了爲什麼儘管你盡最大的努力,你不能在軸上獲得更多的標籤。立體主義不想混亂你的小圖,所以它只允許你最多3個或4個標籤。

解決此問題的最佳方法是增加數據點的數量。您可以通過兩種方式做到這一點:

  • 減少你step 1或2分鐘,得到更廣泛的圖表(1分鐘給出了一個1440px寬的圖像,並在2分鐘一個720像素寬的圖像)。
  • 如果不可行,請將您的時間窗口增加到一週(1008像素)。