【发布时间】:2019-02-21 16:15:29
【问题描述】:
我正在尝试使用 D3.js 创建条形图。条件是 Bar 应该具有固定的宽度和条之间的填充,并且应该绘制在网格线的中心。
工具提示应在点击时出现一条垂直线
我能够创建带有绘图条的网格线,不知何故 rx,ry 从两侧四舍五入。 我怎样才能获得同样的结果。
var rectCluster = svg.selectAll(".bar")
.data(data);
rectCluster
.enter().append("rect")
.attr("class", function(d) {
return "bar";
})
.attr(attrs)
.attr({ry : (20), rx : 20 })
.attr("x", function(d) { return x(d.text); })
.attr("y", function(d) {
return height;
})
.style("fill", function(d) {
return color(d.text);
})
.attr("width", x.rangeBand())
.attr("height", 0)
.transition()
.duration(animationDelay)
.delay(function(d, i) {
return i * animationDelay;
})
.attr("y", function(d) { return y(d.score); })
.attr("height", function(d) { return height - y(d.score) });
var attrs = {
width: function(d, i){
return o.rangeBand();
},
height: function(d, i){
return yScale(d);
},
fill: "#384252",
x: function(d, i){
return xScale(i);
},
y: function(d, i){
return height - yScale(d) - margin.bottom;
}
};
【问题讨论】:
-
就像nixkuroi说的那样,一个剪辑路径并创建一个更大的
rect将x轴广告2*半径吹到你的高度(1也应该足够了)
标签: javascript d3.js charts