0
내 데이터 형식은 [[날짜, 값], ...] 형식입니다. 예를 들어각 날짜별로 상위 k 개의 레코드 선택
:
[[date1, value1], [date1, value2], [date2, value3], ....]]
내가 그 날의 최고 5 값이어야한다 각 날짜 만 5 가치와 그 5 개 값을 선택하고 싶은 말은.
내 크로스 필터/치수 모양은 어떻게해야합니까?
내 데이터 형식은 [[날짜, 값], ...] 형식입니다. 예를 들어각 날짜별로 상위 k 개의 레코드 선택
:
[[date1, value1], [date1, value2], [date2, value3], ....]]
내가 그 날의 최고 5 값이어야한다 각 날짜 만 5 가치와 그 5 개 값을 선택하고 싶은 말은.
내 크로스 필터/치수 모양은 어떻게해야합니까?
d3.nest
을 사용하여 순수 D3을 사용하면 쉽게 수행 할 수 있습니다.
var topValuesByDate = d3.nest()
.key(function(d){ return d.date; })
.rollup(function(leaves){
return leaves.map(function(d){
return d.value;
}).sort(d3.descending).slice(0, 5);
})
.entries(data);
기본 개념은 다음 날짜 별 상위 5 개 값을 식별하는 rollup
을 사용하여 날짜별로 그룹 값이다.
var data = [];
d3.range(1, 4).forEach(function(i){
d3.range(10).forEach(function(j){
data.push({date: "2015/01/0" + i, value: j });
});
});
:
는 또한 시뮬레이션 데이터 a demo 그래서 같이 구성했다