我有一个条形图d3.time.scale
x 轴。我每小时显示一些数据,但使用时第一个和最后一个数据点条总是被切成两半centerBar(true)
.
(当使用centerBar(false)
最后一个栏完全消失。)
时间窗口基于数据本身,计算如下:
var minDate = dateDim.bottom(1)[0]["timestamp"];
var maxDate = dateDim.top(1)[0]["timestamp"];
.x(d3.time.scale().domain([minDate, maxDate]));
The last line sets the time scale domain to use min and maxDate.
This is how it looks:
我使用稍微增加了条形宽度.xUnits(function(){return 60;})
因为默认值太细,以至于第一个条在 y 轴内消失。
Also I already tried to change the domain by substracting/adding one hour to min/maxDate, but this results in unexpected behaviour of the first bar.
我使用以下方法来计算偏移量:
minDate.setHours(minDate.getHours() - 1);
maxDate.setHours(maxDate.getHours() + 1);
是否有修复或解决方法可以在第一个栏之前和最后一个栏之后添加填充?
从 minDate 中减去一个小时,然后向 maxDate 添加一个小时,即可在最小和最大数据的每一侧获得一小时的填充量。
这里的技巧是使用 d3.time.hour.offset 并使用偏移量,直到看起来不错为止。
.x(d3.time.scale().domain([d3.time.hour.offset(minDate, -1), d3.time.hour.offset(maxDate, 2)])); `
看看这个小提琴http://jsfiddle.net/austinlyons/ujdxhd27/3/ http://jsfiddle.net/austinlyons/ujdxhd27/3/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)