2013-07-03 15 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像素)。