1
d3을 사용하여 플롯 한 히스토그램에 재사용 가능성을 구현하려고했습니다. 데이터 집합을 플로팅 한 후에 동일한 플롯에서 통계적 평균, 분산 등을 구상하고 싶습니다. 이러한 결과는 사용자 중심의 것이므로 기본적으로 동일한 플롯을 사용하고 싶습니다.d3 재사용 가능한 히스토그램
여기 골격 히스토그램 코드
function histogram(){
//Defaults
var margin = {top: 20, right: 20, bottom: 20, left: 20},
width = 760,
height = 200;
function chart(selection){
selection.each(function(d,i){
var x = d3.scale.linear()
.domain(d3.extent(d))
.range([0, width]);
var data = d3.layout.histogram()
//Currently generates 20 equally spaced bars
.bins(x.ticks(20))
(d);
var y = d3.scale.linear()
.domain([0, d3.max(d) ])
.range([ height - margin.top - margin.bottom, 0 ]);
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom");
var yAxis = d3.svg.axis()
.scale(y)
.orient("left");
var svg = d3.select(this).append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
var bar = svg.selectAll(".bar")
.data(data)
.enter().append("g")
.attr("class", "bar");
/*
Corrected bars
bar.append("text")
.attr("dy", ".75em")
.attr("y", 6)
.attr("x", x(data[0].dx)/2)
.attr("text-anchor", "middle")
.text(function(d) { return formatCount(d.y); });
*/
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);
svg.append("g")
.attr("class","y axis")
.call(yAxis);
bar.append("rect")
.attr("x", function(d,i){ return x(d.x); })
.attr("width", x(data[0].dx) - 1)
.attr('y',height)
.transition()
.delay(function(d,i){ return i*50; })
.attr('y',function(d){ return y(d.y) })
.attr("height", function(d) { return height - y(d.y); });
});
}
//Accessors//
chart.width = function(value) {
if (!arguments.length) return width;
width = value;
return chart;
};
chart.height = function(value) {
if (!arguments.length) return height;
height = value;
return chart;
};
return chart;
}
그것은 막대에 대한 부정적인 폭을 할당하는 것 코딩에 내 시도입니다. 내 입력 데이터 세트는 단순히 숫자 배열이며 빈도 분포를 그릴 필요가 있습니다
여기에 질문이 있습니까? 기존 [히스토그램 차트 예제] (http://bl.ocks.org/1933560)와 관련이 있습니다 만, [최신 히스토그램 예제] (http://bl.ocks.org/3048450)를 선호합니다. – mbostock