我正在开发一个D3条形图,可以显示几个范围(已经来自其他地方的按摩数据)并允许用户选择多个范围来过滤其搜索条件。
这里小提琴: http://jsfiddle.net/qear2g9b/
我认为它的机制非常好用。我遇到问题的部分是捕获用户输入并将其映射到数据。
完成后,用户应该能够为他们想要查看的类别选择并拖动范围(沿x轴)。我正在使用d3.brush让用户选择图表上的一个区域(我还没有研究如何让它选择整个图表高度)。在端刷上我捕获的坐标需要映射回x轴上的类别。
由于它是一个序数尺度,它没有反转,所以我有点傻。任何帮助将非常感激。
以下代码段:
function brushend() {
console.log("BRUSH END");
console.log(brush.extent());
var pos = brush.extent();
var out = [];
for (var i = 0; i<pos.length;i++) {
for (var j = 0; j<pos[i].length;j++) {
console.log(pos[i][j] + " " + x.invert(pos[i][j])); // Doesn't work because x doesn't have invert method
}
}
}