我在d3中有一个日期刻度,我希望将x.domain()[0]限制在该月的第一天,将x.domain()[1]限制为该月的最后一天.假设数据集是这样的
data : [
{date: '2011-12-31', amount: 200},
{date: '2012-01-01', amount: 100},
{date: '2012-01-02', amount: 300},
{date: '2012-01-03', amount: 400},
{date: '2012-02-01', amount: 400}
]
Run Code Online (Sandbox Code Playgroud)
它是一个人为的例子,但基本上在这种情况下将域名限制在1月份.寻找一个简单的d3esque解决方案.
我认为你正在寻找的是.nice()
使域名开始和结束的好功能(在你的情况下,本月的第一个和最后一个).您仍然需要过滤您的数据,我认为没有任何魔法可以自动确定您希望在本案例中显示1月与12月或2月相比.
var data = [
{date: new Date(2011,11,31), amount: 200},
{date: new Date(2012,0,1), amount: 100},
{date: new Date(2012,0,2), amount: 300},
{date: new Date(2012,0,3), amount: 400},
{date: new Date(2012,1,1), amount: 400}
];
var month = data.filter(function (d) { return d.date.getMonth() === 0; });
var x = d3.time.scale()
.domain(d3.extent(month, function(d) { return d.date; }))
.range([0, width])
.nice(d3.time.month);
Run Code Online (Sandbox Code Playgroud)
您可以在http://bl.ocks.org/3849376上看到此示例.
归档时间: |
|
查看次数: |
4146 次 |
最近记录: |