如何在d3js中设置笔刷范围,同时使用时间刻度
How to set up brush extent in d3 js while using time scale?
我用刷子刷牙有问题。extent([val1,val2])
关于文件:https://github.com/mbostock/d3/wiki/SVG-Controls当我像这样设置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;
处理所有原始格式为yyyy-mm-dd hh:mm:ss 的数据值
在设置brush.extend([val1,val2])时,我需要使用相同的parseDate()函数:
brush.extent([parseDate(val1), parseDate[val2]]);
Mariusz
相关文章:
- 具有树状布局,如何更改X轴以使用D3中的时间刻度
- D3.js具有“11 PM”值的时间刻度怪癖
- D3 十年时间刻度刻度,数据格式为年
- d3时间刻度x轴,带有unix时间戳
- 如何在d3.js中显示年时间刻度上的最小日刻度
- 为什么 d3 时间刻度只显示我 00:00
- 动态创建/限制随机时间的范围并转换为时间戳
- 使用时间刻度的 D3 轴,如何均匀地间隔宽阔的时间间隙
- D3 时间刻度将前后时间范围添加时间间隔的百分比
- 带有时间刻度的 D3 直方图
- d3时间刻度设置初始缩放级别和域
- 在x轴和带时间刻度的直线之间添加空格
- MySQL的时间验证范围
- 如何在d3js中设置笔刷范围,同时使用时间刻度
- d3.js:从时间刻度中获取刻度格式
- D3.js时间刻度刻度-仅限年和月-自定义时间格式
- csv数据的X轴时间刻度
- JQPlot-去掉时间刻度
- D3/SVG:如何通过修改范围来调整带有时间刻度的D3.SVG.axis的大小
- D3时间刻度-刻度(计数)会产生错误,省略刻度(计数(count))不会产生错误