こんにちは、私はd3と積み重ねバーで作業しています。縦型バーで積み上げたバーが正しく動作しています。変更垂直積み上げバーから水平積み重ねバーd3.js
私の垂直機能これを行う..
var x = d3.scale.ordinal()
.rangeRoundBands([0, width], 0.3);
var y = d3.scale.linear()
.rangeRound([height, 0]);
var dataIntermediate = options.map(function(item){
return datos.map(function(d){
if (item in d)
return {x:d.label, y:d[item]};
else
return{x:d.label, y:0};
});
});
var dataStackLayout = d3.layout.stack()(dataIntermediate);
x.domain(dataStackLayout[0].map(function (d) {
return d.x;
}));
y.domain([0,
d3.max(dataStackLayout[dataStackLayout.length - 1],
function (d) {
return d.y0 + d.y;
})
])
.nice();
var layer = svg.selectAll(".stack")
.data(dataStackLayout)
.enter().append("g")
.attr("class", "stack")
.style("fill", function (d, i) {
return color(i);
});
layer.selectAll("rect")
.data(function (d) {return d; })
.enter().append("rect")
.attr("x", function (d) {
return x(d.x);
})
.attr("y", function (d) {
return y(d.y + d.y0);
})
.attr("height", function (d) {
return y(d.y0) - y(d.y + d.y0);
})
.attr("width", x.rangeBand())
.on("mousemove", function(d){
div.style("left", d3.event.pageX+10+"px");
div.style("top", d3.event.pageY-25+"px");
div.style("display", "inline-block");
div.html((d.x)+"<br>"+"Code"+": "+(d.code)+"<br>"+"Value"+": "+(d.y));
})
.on("mouseout", function(d){
div.style("display", "none");
});
を私の横のバージョンでは、私は私が変更すべての私y
ためx
とy0
のための私のx0
と万力詩を変更し、あまりにも
しかし、動作しません...任意のアイデア
生殖可能な例がないと言うのは難しいです.. – timat