Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用时间刻度时,如何在d3 js中设置笔刷范围?_Javascript_D3.js_Brush - Fatal编程技术网

Javascript 在使用时间刻度时,如何在d3 js中设置笔刷范围?

Javascript 在使用时间刻度时,如何在d3 js中设置笔刷范围?,javascript,d3.js,brush,Javascript,D3.js,Brush,我在使用刷子刷牙时遇到问题。范围([val1,val2]) 关于文档:当我设置brush.extent([val1,val2])时,如下所示: var xScale = d3.scale.linear() .domain(data) .range([0, 500]); var brush = d3.svg.brush() .x(xScale) .on('brushstart', function() { this.brushStart();

我在使用刷子刷牙时遇到问题。范围([val1,val2])

关于文档:当我设置brush.extent([val1,val2])时,如下所示:

var xScale = d3.scale.linear()
    .domain(data)
    .range([0, 500]);

var brush = d3.svg.brush()
    .x(xScale)
    .on('brushstart', function() {
        this.brushStart();
    })
    .on('brushend', function() {
        this.brushEnd();
    })
    .extent([100, 300]);
它将在xAxis上显示从100到200的刷子区域(刷子可见且位于右侧位置)

不幸的是,当我使用d3.time.scale()时,它根本不起作用:

var xScale = d3.time.scale()
    .domain(data)
    .range([0, 500]);

var brush = d3.svg.brush()
    .x(xScale)
    .on('brushstart', function() {
        this.brushStart();
    })
    .on('brushend', function() {
        this.brushEnd();
    })
    .extent([100, 300]);
    // or
    // .extent(['2013-08-01T00:00:00Z', '2013-08-10T23:59:59Z']);
    // or
    // .extent(['2013-08-01 00:00:00', '2013-08-10 23:59:59']);
    // or even
    // .extent([new Date(2013, 8, 1, 00, 00, 00), new Date(2013, 8, 10, 23, 59, 59)]);
它不显示拉丝区域

当我使用d3.time.scale()时,如何设置拉丝区域

当然,数据包含日期范围,这些日期范围可以与涂刷的日期范围相匹配,并且与边距相等


Mariusz

我找到了问题和解决方案

我正在使用函数:

var parseDate = d3.time.format('%Y-%m-%d %H:%M:%S').parse;
brush.extent([parseDate(val1), parseDate[val2]]);
处理格式为yyyy mm dd hh:mm:ss的所有原始数据值

在设置brush.extent([val1,val2])时,我需要使用相同的parseDate()函数:

var parseDate = d3.time.format('%Y-%m-%d %H:%M:%S').parse;
brush.extent([parseDate(val1), parseDate[val2]]);
马吕斯