我有一些问题与条形图与Focus+Context通过刷牙。效果很好,但我的问题是:
当我处理我的数据时,我用回收箱和我的图形的宽度来计算酒吧宽度。
var data = d3.layout.histogram()
.bins(x.ticks(bins))
(values);
var numBins = data.length;
var barWidth = parseInt((width)/numBins) - 1;
为了保持一致性,在刷刷焦点图上的酒吧宽度时,应该增加(目前保持相同的宽度)。所以我需要重新计算酒吧的宽度。但我不知道该怎么做.
function brushed() {
x.domain(brush.empty() ? x2.domain() : brush.extent());
focusGraph.attr("x", function(d, i) { return x(d.x); });
focusGraph.attr("width", barWidth); // How can I calculate new barwidth?
focus.select(".x.axis").call(xAxis);
}
在这里,代码:http://jsfiddle.net/qcLp6qu8/
发布于 2015-05-13 12:14:30
如果我能帮助某人,我会找到一个解决方案:)
http://jsfiddle.net/sx9myywh/
function brushed() {
x.domain(brush.empty() ? x2.domain() : brush.extent());
var b = x(data[1].x)-x(data[0].x);
var w = b-2;
focusGraph.attr("x", function(d, i) { return x(d.x); });
focusGraph.attr("width", w);
focus.select(".x.axis").call(xAxis);
}
发布于 2015-05-12 12:10:09
试试这段代码,
focusGraph.attr("width", width/(x.ticks().length));
x.ticks()将给出蜱的数组,.length将给出蜱的数量。若要计算条宽,请执行以下操作。总宽度按滴答数计算,这将给出滴答之间的空间,这必须是条形宽度。
见更新小提琴
希望这对你有用,如果不向我要更多.为更好的处理添加了一些代码。
https://stackoverflow.com/questions/30189975
复制相似问题